如何使用Javascript停止重新加载表单?

Ibr*_*mar 10 javascript

当用户提交表单时,我想停止表单的默认行为.即它不应该重新加载.这样我就可以执行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)

这并不能阻止表单被提交或重新加载.我该如何实现这一目标?

Sha*_*had 18

它需要 onsubmit="return validateForm()"


Mat*_*ing 6

您可以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