Jquery preventDefault在字段验证后不工作

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

下面的代码旨在验证输入不是blank,然后通过Ajax提交表单。当验证被删除时,它可以正常工作,但当它就位时,默认设置似乎无效

$(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键应用了全局默认值。