我的网站上有一些脚本可以将回复发送到服务器并使用ajax重新加载页面。有时候,它会毫无理由地重新加载页面。
所以我添加了这段代码
<script type="text/javascript">
$("form").submit(function(){
event.preventDefault();
return false;
)
</script>
但是当我点击sumbit时它仍在重新加载页面 这是为什么。
答案 0 :(得分:7)
您只是忘了将事件参数引入处理程序:
$("form").submit(function( event ) {
另外:检查错误控制台,在示例代码中您缺少结束括号} );
作为旁注:请确保在加载form
元素后选择它,以便安全使用domReady
:
$(function() {
$("form").submit(function(event){
event.preventDefault();
});
});
答案 1 :(得分:1)
event
作为全球(window.event
)是非标准的。 jQuery为你规范化了这个,所以只需传入event
作为参数:
$(document).ready(function() { // Make sure you wait until the document is ready
$("form").submit(function(event) {
event.preventDefault();
});
});
此外,返回false
次来电event.preventDefault()
以及event.stopPropagation()
。你只想要第一个发生,所以要明确。
答案 2 :(得分:0)
$("form").submit(function(event){})
答案 3 :(得分:0)
在对另一个答案的评论中,你说过:
它仍然重新加载页面
这表示您希望在HTML中使用此表单上面的 。将脚本移动到表单下方(通常在结束</body>
标记之前),或者使用jQuery的ready
事件。
另请注意,如果您使用return false
,则不需要event.preventDefault
,因为来自jQuery事件处理程序的return false
执行event.preventDefault()
和event.stopPropagation()
},所以:
<form ...>
<!-- ... -->
</form>
<!-- ... -->
<script>
$("form").submit(function(){
return false;
});
</script>
</body>
或者,在页面的任何位置,使用ready
的快捷方式:
$(function() {
$("form").submit(function(){
return false;
});
});