Jquery preventDefault在字段验证后不工作
下面的代码旨在验证输入不是blank,然后通过Ajax提交表单。当验证被删除时,它可以正常工作,但当它就位时,默认设置似乎无效Jquery preventDefault在字段验证后不工作,jquery,Jquery,下面的代码旨在验证输入不是blank,然后通过Ajax提交表单。当验证被删除时,它可以正常工作,但当它就位时,默认设置似乎无效 $(document).on("keydown", "input[class='p']", function(e){ if (e.which == 13) { if($(this).val() == ''){ \\\\ Validation alert('The Field Empty'); return f
$(document).on("keydown", "input[class='p']", function(e){
if (e.which == 13) {
if($(this).val() == ''){ \\\\ Validation
alert('The Field Empty');
return false;
}
e.preventDefault();
var theData = $("form").serializeArray();
var parentDiv = '#theDiv';
$.ajax({
type: "POST",
url: "functions.php",
data: theData,
cache: false,
success: function(data){
$(parentDiv).html(data);
}
})
}
});
我已经尝试将preventDefault移到验证之上,但这也不起作用。
谁能看出我做错了什么
谢谢
朱尔斯
编辑:编辑以更正验证检查过程中与讨论的问题无关的错误。
$(this).val(“”)
您应该将$(this.val()!=“”代码>或者你不是在测试而是在影响!!!这就是您的验证必须破坏代码的原因。此解决方案的功劳和感谢归于TCHdvlp
$(document).keypress(function(event){
if (event.keyCode == 10 || event.keyCode == 13)
event.preventDefault();
});
$(document).on("keydown", "input[class='p']", function(e){
if (e.which == 13) {
if($(this).val() == ''){
alert('Field Empty');
return false;
}
var theData = $("form").serializeArray();
var parentDiv = '#theDiv';
$.ajax({
type: "POST",
url: "functions.php",
data: theData,
cache: false,
success: function(data){
$(parentDiv).html(data);
}
})
}
});
我想当用户在输入提交元素上按“return”时,您应该阻止表单提交,对吗?$(this).val(“”)
您应该将$(this.val()!=“”代码>或者你不是在测试而是在影响!!!我在JFIDLE上建立了一个我想要实现的简化版本,这样你就可以确切地看到我的意图。jsfiddle.net/Moosheep/eGdffOK,这是一个愚蠢的错误,但它并没有解决问题!我收到验证警报,然后表单正在提交。如果您现在将preventDefault()
放在验证之前,会怎么样?事实上,我想知道这件事是怎么回事。通过说e.preventDefault()
可以取消输入上按键的默认行为。但是,“enter”键是否有特定的处理程序?例如,如果在文档的任何位置按“enter”,则查找表单并提交它。您应该编写$(document).on(“keydown”,函数(e){if(e.which==13){e.preventDefault()})
在文档中。ready
MWell,我相信您理解我的意思。我已经设置了一个简化版本,介绍了我试图在JFiddle上实现的目标,这样您就可以确切地了解我的意图。我尝试过在文档中添加默认值。按照建议准备好了,但没有乐趣。只是编辑了你的小提琴。似乎有效。我为enter键应用了全局默认值。