Javascript event.preventDefault不工作
我这里有一个简单的代码,没有什么太高级的Javascript event.preventDefault不工作,javascript,jquery,ajax,events,preventdefault,Javascript,Jquery,Ajax,Events,Preventdefault,我这里有一个简单的代码,没有什么太高级的 $("input#send").submit(function(event){ event.preventDefault(); $.ajax({ type: 'POST', url: add.php, data: data, success: success, dataType: dataType }); }); 当我点击“发送”按钮时,
$("input#send").submit(function(event){
event.preventDefault();
$.ajax({
type: 'POST',
url: add.php,
data: data,
success: success,
dataType: dataType
});
});
当我点击“发送”按钮时,event.preventDefault
功能不工作,页面加载
知道为什么吗?尝试使用return false
$("input#send").submit(function(event) {
$.ajax({
type: 'POST',
url: add.php,
data: data,
success: success,
dataType: dataType
});
return false;
});
表单具有提交事件,而不是按钮。另外,ID应该是唯一的,因此标记#ID
只能是#ID
$("#theform").submit(function(event) {
event.preventDefault();
// ...
});
我相信提交事件是针对表单元素的。对于输入[type='button']您可能需要使用click事件。您需要绑定到表单的
submit
事件或按钮的click
事件,并调用event.preventDefault()
如果要停止表单提交:
$('form').bind('submit', function (event) {
event.preventDefault();
});
$('form').find(':submit').bind('click', function (event) {
event.preventDefault();
});
'Add.php'
input#send
的表单的id
属性李>
处理表单上的submit()
处理程序而不是输入上的click
处理程序的优点是,某些表单可以通过按enter键提交(当用户关注其中一个表单字段时)。如果没有id
属性,请添加一个或使用不同的jQuery选择器以表单标记为目标
$("#myform").submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'add.php',
data: data,
success: success,
dataType: dataType
});
return false;
});
如果您使用的是preventDefault,我假定这意味着您不希望使用默认提交操作。我会使用不同的事件,而不是使用.submit。对我来说,您想要拦截的不是提交操作,而是通常会导致提交的单击
$('#inputSend').on('click', function(event) {
event.preventDefault();
//the rest
});
如果
返回false
和event.stopPropagation()
都不起作用,请尝试以下方法。使用.on()
将使提交功能可访问。将.submit()
更改为.on(“submit”)
后,您可以使用返回false
或e.stopPropagation()
不应该有区别。
在jQuery事件处理程序中返回false
与调用event.preventDefault()相同;event.stopPropagation()代码>我已经尝试过了,但由于ajax的原因,它没有工作。如果我把它放在ajax代码之上,但不是放在它之后,它就会工作。不管怎样谢谢:)谢谢,成功了。请允许我问一下,我之前使用了按钮上的单击功能,但它似乎也没有这样工作?为什么?彼得·斯图尔特:你到底是什么意思?在submit
按钮上点击,同样有效:。@PeterStuart我想这是因为你没有在add.php
周围加引号,请看下面我的答案。我同意@pimvdb关于将事件处理程序放在表单本身上的建议,因为您还可以通过键盘使用enter
键调用表单提交。
$(document).on("submit", "input#send", function(event) {
event.stopPropagation();
$.ajax({
type: 'POST',
url: add.php,
data: data,
success: success,
dataType: dataType
});
return false; });