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

如何阻止使用Javascript重新加载表单?,javascript,Javascript,当用户提交表单时,我希望停止表单的默认行为。它不应该重新加载。这样我就可以执行AJAX请求了 这是我使用的代码 <script type="text/javascript"> function validateForm() { return false; } </script> <form action="" name="contact" onsubmit="validateForm();"> <input

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

函数validateForm()
{
返回false;
}

这不会阻止表单的提交或重新加载。如何实现这一点?

它需要是
onsubmit=“return validateForm()”
您应该在表单的onsubmit handler中使用return。 请尝试以下版本:

<script type="text/javascript">
    function validateForm()
    {
        return false;
    }
</script>
<form action="" name="contact" onsubmit="return validateForm();">
    <input type="text" name="name" value="Enter Your Name..."/>
    <input type="submit" name="submit"/>

函数validateForm()
{
返回false;
}

在事件处理程序中添加返回:

onsubmit="return validateForm();"

否则,函数将执行,但不会告诉浏览器停止处理。

您可以按照建议使用
onsubmit
属性,一种更不显眼的方法是对传递给绑定到
onsubmit
事件的函数的事件对象使用
preventDefault()

function validateForm(e) {
    if (e.preventDefault) {
       e.preventDefault();
    }
    e.returnValue = false; // for IE
}
只有将事件侦听器绑定到表单,而不是将
onsubmit
inline绑定到表单时,这才有效

编辑:以下是如何将事件侦听器绑定到表单,当触发时,表单将传递一个事件对象(注意,这是W3C风格,在IE中不起作用,但会给您一个想法):

当触发
submit
事件时,它将调用
validateForm
函数,传递事件对象。下面是一篇关于Javascript事件的非常好的文章:

使用jQuery:

$('form').on('submit', function() {
  // call functions to handle form
  return false;
});

基本上与上述解决方案相同,但我更喜欢将我的JS排除在HTML之外,即使是
“onsubmit”
属性。

您不能从AJAX请求返回。这里的e是什么?我需要在那里传递任何参数吗?仅用于防止重新加载/清除表单的简短片段:
onsubmit=“return false;”
$('form').on('submit', function() {
  // call functions to handle form
  return false;
});