Сломанный DOM в IE и FF после вызова Ajax - PullRequest
1 голос
/ 22 сентября 2010

я получаю странное поведение IE и FF при выполнении ajax callM; Хром у меня работает как положено;)

В Grails я использую тег <g:formRemote/>, который приводит к следующему коду:

<form onsubmit="jQuery.ajax({type:'POST',
                             data:jQuery(this).serialize(),
                             url:'/url/morUrl',
                             success:function(data,textStatus){},
                             error:function(XMLHttpRequest,textStatus,errorThrown){}
                             complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}
                            });return false" 
      method="POST" 
      action="/url/morUrl" 
      name="tmpForm" 
      asynchronous="false" 
      id="tmpForm">`

В ALL протестированных браузерах вызов ajac выполнен хорошо и достиг обратного вызова complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}, который также хорошо работает. После этого только FF и IE делают что-то странное и пропускают весь DOM Modell с помощью простого "false" , оставленного в качестве содержимого.

Я выяснил, что return false, добавленный к Ajax Call, <form onsubmit="jQuery.ajax({ ... ... });**return false**" отвечает за это поведение.

return false появляется во всех моих вызовах ajax, но только здесь это приводит к этому результату freekin. Вызов ajax возвращает некоторый JSON с некоторым новым HTML внутри, который используется для замены слоя div внутри обратного вызова performAction(XMLHttpRequest) .

Есть идеи, почему IE и FF делают эту странную вещь?

У кого-нибудь есть подобные проблемы? и / или рабочий раствор?

С уважением,

Alex

1 Ответ

0 голосов
/ 25 сентября 2010

Оказывается, что ссылка, отправляющая форму, фактически использовала нотацию href=javascript:tmpForm.onsubmit();.

IE и FF взяли строку "javascript: tmpForm.onsubmit ();"как новый документ URl и проверил его (опубликовав результат как новый контент), в то время как Chrome только что выполнил JS ....

, похоже, моя ошибка;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...