Jquery preventDefault在字段验证后无法正常工作

时间:2013-12-17 14:15:20

标签: jquery

以下代码用于验证输入是否为blankt,然后通过Ajax提交表单。删除验证时,它的工作正常,但是当它到位时,preventDefault似乎没有效果。

$(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移动到验证之上,但这也不起作用。 谁能发现我做错了什么?

由于

编辑:编辑纠正错误,验证检查程序与正在讨论的问题无关。

2 个答案:

答案 0 :(得分:1)

$(this).val('')你应该放$(this).val() != ''或者你没有测试但影响!!!这就是为什么你的验证必须破坏你的代码。

答案 1 :(得分:0)

感谢并感谢此解决方案转到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);
      }
       })


   }
    });