【问题标题】:Ajax call only if the jquery validation is valid仅当 jquery 验证有效时才调用 Ajax
【发布时间】:2013-11-01 10:35:59
【问题描述】:

我有一个表单和 ajax 调用。数据被填写在表单中并在使用 ajax 调用在我的数据库中创建用户的同时转到远程。但问题在于验证,这里应该应用验证 例如,我应用任何 jquery 验证,我需要测试表单是否有效,然后如果表单有效,我可以调用 ajax,否则数据库将填充空白数据 我尝试使用 bvalidator,但我不知道如何使用任何 jquery 验证器库检测表单是有效还是无效

<form id="inform" action="http://site.com">
<input type="text" id="name" />
<input type="text" id="email" />
<input type="button" name="subaction" id="infuse" />
</form>

    <script language ="javascript" type = "text/javascript" >
    $na= jQuery.noConflict();
    $na(document).ready(function(){ 
            $na('#infuse').click(function(){


                         var name= $na('#name').val();

                         var email = $na('#email').val();


                 $na.ajax({
                             type: "POST",
                             url: '<?php bloginfo('template_url')?>/user_create.php',
                             data: 'name='+name+'&email='+email,
                             cache: false,


                             success: function(result){
                                                     jQuery('.err_msg').html(result);
                                                      jQuery("#inform").submit();  
                                               }
                                          });


                    }); 
     });

    </script> 

【问题讨论】:

  • 您的问题似乎有错字。您真的想将email 中的值存储在一个名为age 的变量中并且不再使用它吗?
  • 难道你不能自己编写更适合你的应用程序的验证吗?
  • 是的,我写错了它不是原始版本,但我需要的是在 ajax 调用之前有效的表单,如果有效则转到 ajax 进程
  • 您要准确运行哪些验证?
  • 我使用 jquey bvalidator。但我找不到如何检查表单是否有效。

标签: php jquery ajax validation


【解决方案1】:

你可以这样做

<script language ="javascript" type = "text/javascript" >
$na= jQuery.noConflict();
var name;
var email;
var options10 = {

    // shows or hides error all messages container after validation completes
    onAfterAllValidations: function(elements, formIsValid){

        // if validation failed
        if(!formIsValid)
            callAjax();
        else{
            //do something
        }
    }
};


function callAjax(){
  $na.ajax({
                           type: "POST",
                           url: '<?php bloginfo('template_url')?>/user_create.php',
                           data: 'name='+name+'&email='+email,
                           cache: false,
                           success: function(result){
                                                 jQuery('.err_msg').html(result);
                                                  jQuery("#inform").submit();  
                                           }
                                 });
}
$na(document).ready(function(){ 
        $('#inform').bValidator(options10);

        $na('#infuse').click(function(){


                     name= $na('#name').val();
                     email = $na('#email').val();

         }); 
});

</script> 

我还没有检查过这个,但希望它有效。重要的是,您可以使用回调:onAfterAllValidations

【讨论】:

  • Hello jquery 验证使用输入类型提交,但是当我在验证成功后使用它时,表单提交并且我的 ajax 调用不运行所以应该怎么办,因为以前我使用输入类型按钮并在 ajax 之后提交表单打电话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2021-03-10
  • 2019-12-15
  • 1970-01-01
  • 2013-05-20
相关资源
最近更新 更多