Javascript-Prototype:表单上的Event.observe不适用于IE
我有一个JS,它从一个服务获取一个XML响应,是真是假,脚本应该捕获提交并从服务获取响应。 问题是,我看到它不起作用,因为当我提交时,我在IE(6/7/8)上看到了XML响应,而脚本应该捕获它并验证XML响应Javascript-Prototype:表单上的Event.observe不适用于IE,javascript,xml,events,prototypejs,observer-pattern,Javascript,Xml,Events,Prototypejs,Observer Pattern,我有一个JS,它从一个服务获取一个XML响应,是真是假,脚本应该捕获提交并从服务获取响应。 问题是,我看到它不起作用,因为当我提交时,我在IE(6/7/8)上看到了XML响应,而脚本应该捕获它并验证XML响应 <div id="eventForm" style="display:none;"> Event.observe('formDataPersonal', 'submit', function(event) { $('formDataPersonal').requ
<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>
观察('formDataPersonal','submit',函数(事件){
$('formDataPersonal')。请求({
onSuccess:函数(t){
var xml=t.responseXML.documentElement;
var stateNode='';
var msgNode='';
如果(navigator.appName==“Microsoft Internet Explorer”){
stateNode=xml.childNodes[0].nodeValue.toLowerCase();
msgNode=xml.childNodes[1].nodeValue;
}否则{
stateNode=xml.childNodes[0].textContent.toLowerCase();
msgNode=xml.childNodes[1].textContent;
}
如果(stateNode==“true”){
$('transparentDiv').style.display='none';
$('popup').style.display='none';
validateIntegrationPopup();
}否则{
var error=msgNode;
如果(错误!=''){
$('interbase')。innerHTML=错误;
}
}
}
})
});
我将非常感谢您的帮助。我认为问题可能是“IE”没有看到提交事件,因此它通常只提交表单:
请参阅:这是一个老问题,但我在谷歌搜索中成功地获得了第二个结果,因此: 您并没有阻止提交事件通过浏览器,这就是为什么即使事件处理程序附加到表单上,表单仍在提交。添加一个
事件.stop()
:
观察('formDataPersonal','submit',函数(事件){
事件停止();
$('formDataPersonal')。请求({
//……代码。。。。
});
});
是否将contentType设置为text/xml?
<div id="eventForm" style="display:none;">
Event.observe('formDataPersonal', 'submit', function(event) {
event.stop();
$('formDataPersonal').request({
// .... code ....
});
});
</div>