我有这个JS从服务获取XML响应,它是一个True或一个False,脚本应该捕获提交并从服务获得响应。 问题是我发现它不起作用,因为当我提交时,我看到IE上的XML响应(6/7/8),当脚本应该捕获它并验证XML响应时。
<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 :(得分:1)
我认为问题可能是'IE'没有看到提交事件所以最终只是正常提交表单:
答案 1 :(得分:1)
这是一个老问题,但我设法将其作为我在Google搜索中的第二个结果,所以:
您没有停止提交事件进入浏览器,这就是表单提交的原因,即使附加了事件处理程序。添加event.stop()
:
<div id="eventForm" style="display:none;">
Event.observe('formDataPersonal', 'submit', function(event) {
event.stop();
$('formDataPersonal').request({
// .... code ....
});
});
</div>