表单提交甚至在返回false jquery之后
form submitting even after return false jquery
我的简单jquery代码显示了alter框,但也提交了表单。为什么会发生这种情况?当按下回车键时,如果长度小于3,则它应该显示错误,并且不应该提交表单,但它即使在显示错误后也在提交表单。
$('#frmSearch input').keydown(function(e) {
if (e.keyCode == 13) {
if ($('#frmSearch input').val().length < 3) {
alert("SEARCH TEXT TOO SHORT");
return (false);
}
else
{
$('#frmSearch').submit();
}
}
});
Enter键自动提交表单。您可以这样做:
$("#frmSearch").submit(function(e){
if ($('#frmSearch input').val().length < 3) {
e.preventDefault();
alert("SEARCH TEXT TOO SHORT");
}
}
并且您不是在处理submit事件,而是在处理keydown事件,该事件不会阻止submit调用。
您也可以尝试,使用按键而不使用keydown
(function ($) {
$ ('# frmSearch input'). keypress (function (e) {
if (e.KeyCode == 13) {
if ($ ('# frmSearch input'). val (). length <3) {
alert ("SEARCH TEXT TOO SHORT");
return (false);
}
else
{
$ ('# frmSearch') submit ().;
}
}
});
}) (jQuery);
有时Enter键默认情况下可以自动提交表单。如果您想拦截并阻止这种行为,您可以停止默认提交。我会把e.preventDefault()
放在你的代码中。
更新
$('#frmSearch input').keydown(function(e) {
if (e.keyCode == 13) {
//Prevents default submit
e.preventDefault();
if ($('#frmSearch input').val().length < 3) {
alert("SEARCH TEXT TOO SHORT");
return (false);
}
else
{
$('#frmSearch').submit();
}
}
});
相关文章:
- jQuery没有指定异步调用级别async:false
- jQuery.is(':checked')总是返回false
- 提交返回 false 总是在 jquery 中
- JQuery prop('required', false, (!$(this).is(':checked')) 不起作
- jquery focusin没有'调用.focus()并返回false;时无效;
- jQuery JSON flickr提要返回false不工作
- 为什么当可见更改为false时,JQuery无法获取Textarea值
- jQuery ajax async:false会导致一个奇怪的警告
- 在选择器中的JQuery中返回true或false
- 在jquery中,同一同级的父级在比较时返回false
- jQuery .preventDefault 和 .stopPropagation 在返回 false 的函数中使用
- 在AngularJS中使用jQuery移动适配器-应用jqmCompatMode false启用角度路由
- 循环遍历所有字段,如果任何一个字段的验证失败jquery,则返回false
- jquery ajax async false不起作用
- hasClass jQuery总是给出“false”
- jQuery 拖放更改我的 URL - 返回 false 不起作用
- HTML 复选框 Click() 使用 jQuery 返回 FALSE 或 TRUE,而不是 READONLY 或 DI
- 表单提交甚至在返回false jquery之后
- 传递"返回false"jQuery中函数之间的关系
- JS onClick返回false, jQuery全局.click