以下是我的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发现)的情况下支持该方法。
event
preventDefault
有帮助吗?
在IE中,您可以使用
event.returnValue = false;
达到相同的结果。
为了不出错,您可以测试一下preventDefault的存在:
if(event.preventDefault) event.preventDefault();
您可以将两者结合使用:
event.preventDefault ? event.preventDefault() : (event.returnValue = false);