如何停止使用Javascript重新加载表单?
当用户提交表单时,我想停止表单的默认行为。即它不应该重新加载。以便我可以执行AJAX请求。如何停止使用Javascript重新加载表单?
这里是我使用的代码。
<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>
这不会阻止表单被提交或重新加载。我如何实现这一目标?
它需要onsubmit="return validateForm()"
用于防止重新加载/清除表单的短片段:'onsubmit =“返回false;”' – 2016-09-16 08:30:12
你应该用在形式的onsubmit hanlder回报。 试试这个版本:
<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"/>
在事件处理中添加回报:
onsubmit="return validateForm();"
否则功能来执行,但不告诉浏览器停止处理。
可以使用onsubmit
属性的建议,更不显眼的方式是通过绑定到你的onsubmit
事件的函数的事件对象上使用preventDefault()
:
function validateForm(e) {
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false; // for IE
}
如果你绑定事件
这只能倾听表单,而不是内嵌onsubmit
。
编辑:这里是你如何绑定一个事件监听器到窗体,当被触发时会传递一个Event对象(注意这是W3C风格,这在IE中不起作用,但会给你一个想法):
var form = document.getElementById('myform');
form.addEventListener('submit', validateForm, false);
当触发事件submit
,它会调用validateForm
函数,传递事件对象。这里有一个关于JavaScript事件一个真正的好文章:
这里的e是什么?我需要传递任何参数吗? – 2011-03-01 04:54:00
请参阅我对编辑的回答以获取更多信息。 – 2011-03-01 05:00:43
它在很大程度上帮助了我。谢谢。 :) – 2011-03-01 05:24:41
使用jQuery:
$('form').on('submit', function() {
// call functions to handle form
return false;
});
基本上与上述相同的解决方案,但我更喜欢把我的JS了我的HTML,连"onsubmit"
属性。
您不能从AJAX请求返回。 – SLaks 2011-03-01 04:45:05