当用户提交表单时,我想停止表单的默认行为.即它不应该重新加载.这样我就可以执行AJAX请求了.
这是我用过的代码.
<script type="text/javascript">
function validateForm()
{
return false;
}
</script>
<form action="" name="contact" onsubmit="validateForm();">
<input type="text" name="name" value="Enter Your Name..."/>
<input type="submit" name="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
这并不能阻止表单被提交或重新加载.我该如何实现这一目标?
您可以onsubmit按照建议使用该属性,更加不显眼的方法是使用preventDefault()传递给绑定到onsubmit事件的函数的事件对象:
function validateForm(e) {
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false; // for IE
}
Run Code Online (Sandbox Code Playgroud)
这仅适用于将事件侦听器绑定到窗体而不是onsubmit内联的情况.
编辑:这里是你如何将一个事件监听器绑定到窗体上,触发时会传递一个Event对象(注意这是W3C样式,这在IE中不起作用,但会给你一个想法):
var form = document.getElementById('myform');
form.addEventListener('submit', validateForm, false);
Run Code Online (Sandbox Code Playgroud)
当submit触发事件时,它会调用validateForm函数,传递事件对象.这是关于Javascript事件的一篇非常好的文章:
http://www.quirksmode.org/js/introevents.html