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