【发布时间】:2010-11-03 06:57:33
【问题描述】:
以下是我的 JavaScript (mootools) 代码:
$('orderNowForm').addEvent('submit', function (event) {
event.preventDefault();
allFilled = false;
$$(".required").each(function (inp) {
if (inp.getValue() != '') {
allFilled = true;
}
});
if (!allFilled) {
$$(".errormsg").setStyle('display', '');
return;
} else {
$$('.defaultText').each(function (input) {
if (input.getValue() == input.getAttribute('title')) {
input.setAttribute('value', '');
}
});
}
this.send({
onSuccess: function () {
$('page_1_table').setStyle('display', 'none');
$('page_2_table').setStyle('display', 'none');
$('page_3_table').setStyle('display', '');
}
});
});
在除 IE 之外的所有浏览器中,这都可以正常工作。但在 IE 中,这会导致错误。我有 IE8,所以在使用它的 JavaScript 调试器时,我发现 event 对象没有导致错误的 preventDefault 方法,因此表单正在提交。在 Firefox(我使用 Firebug 发现)的情况下支持该方法。
有什么帮助吗?
【问题讨论】:
-
确实如此;根据文档(mootools.net/docs/core/Native/Event#Event:preventDefault),他应该工作:“事件方法:preventDefault - 跨浏览器方法以防止事件的默认操作。”
-
糟糕,我删除了我的评论,即“mootools 没有停止事件的方法吗?”。所以ie8上的mootools有问题...
-
无法重现此问题。 This fiddle“在 ie 8 上为我工作”你能设置一个简化的小提琴来显示错误吗? jsfiddle.net
标签: javascript internet-explorer events mootools preventdefault