2010-10-14 63 views
0

我有這個JS從服務獲取XML響應,它是一個True或False,並且腳本應該抓住提交併獲得響應服務。 問題是,我發現它不起作用,因爲當我提交時,我看到了IE(6/7/8)上的XML響應,當腳本應該抓住它並驗證XML響應時。Javascript - 原型:表單上的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? – 2010-10-15 11:13:36

+0

如何做到這一點? – BoDiE2003 2010-10-15 12:30:58

回答

1

這是一個老問題,但我設法將其作爲我在Google搜索中的第二個結果,因此:

您沒有停止提交事件,因此無法通過瀏覽器停止提交事件,這就是表單即使附加了事件處理程序也要提交的原因。加入一個event.stop()

<div id="eventForm" style="display:none;"> 
    Event.observe('formDataPersonal', 'submit', function(event) { 
     event.stop(); 
     $('formDataPersonal').request({ 
      // .... code .... 
     }); 
    }); 
</div> 
相關問題