[英]event.preventDefault not working
我这里有这个简单的代码,没什么太先进的。
$("input#send").submit(function(event){
event.preventDefault();
$.ajax({
type: 'POST',
url: add.php,
data: data,
success: success,
dataType: dataType
});
});
当我点击“发送”按钮时, event.preventDefault
函数不起作用,页面加载。
有什么想法吗?
表单包含提交事件,而不是按钮。 另外,ID应该是唯一的,因此tag#id
#id
只能是#id
。
$("#theform").submit(function(event) {
event.preventDefault();
// ...
});
如果要阻止表单提交,则需要绑定到表单的submit
事件或按钮的click
事件并调用event.preventDefault()
:
$('form').bind('submit', function (event) {
event.preventDefault();
});
$('form').find(':submit').bind('click', function (event) {
event.preventDefault();
});
我相信提交事件是表单元素。 对于输入[type ='button'],您可能希望使用click事件。
'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;
});
如果两者都return false
并且event.stopPropagation()
不起作用,请尝试以下方法。 使用.on()
将使提交功能可访问。 将.submit()
更改为.on("submit"..)
,可以使用return false
或e.stopPropagation()
。
$(document).on("submit", "input#send", function(event) {
event.stopPropagation();
$.ajax({
type: 'POST',
url: add.php,
data: data,
success: success,
dataType: dataType
});
return false; });
请尝试使用return false
$("input#send").submit(function(event) {
$.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
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.