Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果表单中存在任何验证错误,如何防止AJAX post发送数据?_Jquery_Jquery Selectors - Fatal编程技术网

Jquery 如果表单中存在任何验证错误,如何防止AJAX post发送数据?

Jquery 如果表单中存在任何验证错误,如何防止AJAX post发送数据?,jquery,jquery-selectors,Jquery,Jquery Selectors,我正在尝试使用jQueryAjax(使用以下脚本)提交数据,它工作正常,但问题是它提交数据,即使我的表单中存在一些验证错误。我正在使用jQuery验证插件1.7来验证我的表单 所以我的问题是,如果我的表单中存在任何验证错误,是否有任何方法可以阻止AJAX post发送数据 谢谢:) $(文档).ready(函数(){//已添加 $(“#提交项目”)。单击(函数(){ var teacherid=$('#teacherid').val(); var salary_amount=$(“#salar

我正在尝试使用jQueryAjax(使用以下脚本)提交数据,它工作正常,但问题是它提交数据,即使我的表单中存在一些验证错误。我正在使用jQuery验证插件1.7来验证我的表单

所以我的问题是,如果我的表单中存在任何验证错误,是否有任何方法可以阻止AJAX post发送数据

谢谢:)


$(文档).ready(函数(){//已添加
$(“#提交项目”)。单击(函数(){
var teacherid=$('#teacherid').val();
var salary_amount=$(“#salary_amount”).val();
$.ajax({
类型:“POST”,
url:“添加教师工资/添加ajax”,
数据:“教师ID=“+teacherid+”&工资金额=“+salary\u amount,
成功:函数(html){
$(“#show”).html(html);
}
});
返回错误
});
}); // 补充

$(文档).ready(函数(){//已添加
$('#myForm').validate();
$(“#提交项目”)。单击(函数(){
var teacherid=$('#teacherid').val();
var salary_amount=$(“#salary_amount”).val();
if($('#myForm').valid()){
$.ajax({
类型:“POST”,
url:“添加教师工资/添加ajax”,
数据:“教师ID=“+teacherid+”&工资金额=“+salary\u amount,
成功:函数(html){
$(“#show”).html(html);
}
});
}
返回错误
});
}); // 补充
将#myForm切换为表单ID。我没有对此进行测试,但它应该足以让您朝着正确的方向前进。

这很好:(已编辑

HTML:


试试看:

你能添加一个链接到你使用的验证脚本吗?上面的代码没有任何验证调用。永远不要使用return false;在jQuery中,除非您试图停止事件的立即传播并阻止其默认行为。如果您只是试图阻止事件上的默认操作,请使用event.preventDefault():不确定您使用的是哪个插件,但任何类型的验证脚本都应该返回布尔值以表示存在任何错误。在if语句中使用返回的布尔值来控制何时启动ajax的执行。@ManseUK。嗨,曼苏克。。。这是我正在使用的验证脚本的链接。。。谢谢:)谢谢你的回复。我尝试了你的代码,但这次页面只重新加载,没有提交任何数据作为我的表单操作=“谢谢jlrvpuma”。我试过你的剧本,但还是不走运。。页面只会重新加载。谢谢你的努力,伙计……)真的,我的逻辑错了。这个例子很好:再次非常感谢你。你的逻辑完全正确。。但问题是我没有自己编写表单验证;我正在使用jquery验证插件。因此,我使用的jquery插件所做的工作与脚本中的函数IsValidData()所做的工作相同。。。正在验证表单。。。既然我正在使用jquery验证插件,有没有办法检查表单是否经过验证?谢谢:)我正在使用jQuery验证插件1.9aaahh,xD,那么您必须将“if(IsValidData())”更改为“if($(“#myForm”).validate().form())”。我已经编辑了我以前的答案。这是JQuery验证的最佳答案。非常感谢
 <script  type="text/javascript">
  $(document).ready(function(){ // added
 $('#submit_item').click(function(){

   var teacherid = $('#teacherid').val();  
  var salary_amount = $('#salary_amount').val(); 



 $.ajax({

  type: "POST",
  url: "<?php echo base_url(); ?>addteacher_salary/add_ajax",
  data: "teacherid="+teacherid+ "&salary_amount="+ salary_amount,
  success: function(html){
  $("#show").html(html);


   }
 });

 return false
 });
 }); // added
 </script>
 <script  type="text/javascript">
  $(document).ready(function(){ // added

    $('#myForm').validate();

     $('#submit_item').click(function(){

        var teacherid = $('#teacherid').val();  
        var salary_amount = $('#salary_amount').val(); 


        if($('#myForm').valid()) {  
             $.ajax({

              type: "POST",
              url: "<?php echo base_url(); ?>addteacher_salary/add_ajax",
              data: "teacherid="+teacherid+ "&salary_amount="+ salary_amount,
              success: function(html){
              $("#show").html(html);


               }
             });
        }

        return false
     });
 }); // added
 </script>
<form action="index.html" id="myForm" method="post">
<span>Salary: </span>
<input type="text" id="salary_amount" class="required" />
<input type="submit" id="submit_item" Value="Submit" />
</form>
$(document).ready(function(){

  $("#submit_item").click(function(e){
    e.preventDefault();
     if($("#myForm").validate().form())
    {
        alert('DO AJAX POST');
    }
    else
    {
        alert('INVALID DATA');
    }
  });//submit--click
});//ready