我有一个非常简单的页面,其中包含我试图阻止使用jQuery发送的表单,但代码却令人惊讶地无法正常工作。有什么想法吗?
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
$("#searchForm").submit(function(e){
e.preventDefault();
});
</script>
</head>
<body>
<form id="searchForm">
<input name="q" placeholder="Go to a Website">
<input type="submit" value="Search">
</form>
<pre id="response"></pre>
</body>
答案 0 :(得分:5)
您需要将代码包装在.ready()
中,以便在DOM准备就绪时执行。
$(document).ready(function() {
$("#searchForm").submit(function(e){
e.preventDefault();
});
});
答案 1 :(得分:3)
您的代码位于标题中,因此在<form>
存在之前执行。因此,选择器#searchForm
不匹配。将脚本标记放在表单下面。
答案 2 :(得分:2)
您需要延迟添加事件监听器功能,直到浏览器加载完页面为止。否则,在表单元素存在之前执行这些JavaScript行,因此该函数不会附加到它。
在jQuery's .ready()
method中包装事件监听器:
$(document).ready(function() {
$('#searchForm').submit(function(event) {
event.preventDefault();
});
});
答案 3 :(得分:0)
$(document).on('submit', function(e){
e.preventDefault();
});