2010-10-14 1 views
0

У меня есть JS, который получает ответ XML от службы, его True или False, ну, скрипт должен поймать submit и получить ответ от обслуживание. Проблема заключается в том, что я вижу, что он не работает, потому что когда я делаю submit, я вижу ответ XML на IE (6/7/8), когда скрипт должен был зацепить его и проверить ответ XML.Javascript - Prototype: Event.observe на форме не работает для IE

<div id="eventForm" style="display:none;"> 
    Event.observe('formDataPersonal', 'submit', function(event) { 
    $('formDataPersonal').request({ 
     onSuccess: function(t) { 
      var xml = t.responseXML.documentElement; 
      var stateNode = ''; 
      var msgNode = ''; 
      if (navigator.appName == "Microsoft Internet Explorer"){ 
       stateNode = xml.childNodes[0].nodeValue.toLowerCase(); 
       msgNode = xml.childNodes[1].nodeValue; 
      }else{ 
       stateNode = xml.childNodes[0].textContent.toLowerCase(); 
       msgNode = xml.childNodes[1].textContent; 
      } 
      if (stateNode == 'true'){ 
       $('transparentDiv').style.display='none'; 
       $('popup').style.display='none'; 
       validateIntegrationPopup(); 
      }else{ 
       var error = msgNode; 
       if (error != ''){ 
        $('interfase').innerHTML = error; 
       } 
      } 
     } 
    }) 
    }); 
</div> 

Я был бы признателен за помощь.

+0

Вы настраиваете contentType как text/xml? –

+0

Как это сделать? – BoDiE2003

ответ

1

Это старый вопрос, но мне удалось чтобы получить его как мой второй результат в поиске Google, так что:

Вы не останавливаете отправку события в браузере, поэтому форма отправляется, даже если обработчик события прикреплен к нему. Добавить в a event.stop():

<div id="eventForm" style="display:none;"> 
    Event.observe('formDataPersonal', 'submit', function(event) { 
     event.stop(); 
     $('formDataPersonal').request({ 
      // .... code .... 
     }); 
    }); 
</div> 
Смежные вопросы