jQuery在DIV上验证插件

时间:2011-02-08 17:28:27

标签: javascript jquery jquery-validate

我正在尝试在validate plugin的答案中显示的div上使用this question

<script type="text/javascript">
  $("#pseudoForm").validate({
    onfocusout:true,
    rules:{
      first_name:"required",
      last_name:"required"
    }
  });
</script>
<!-- whatever -->
<div id="pseudoForm">
  <input type="text" name="first_name"/>
  <input type="text" name="last_name"/>
</div>

我拥有一张表格。

我在不同的浏览器上遇到了一堆不同的错误。

  • Firefox :未定义的验证程序
  • IE8 :'settings'为null或不是 对象
  • Chrome :无法读取未定义的属性“设置”

任何帮助表示赞赏!

5 个答案:

答案 0 :(得分:54)

这不是你想听到的答案,但另一个答案是不正确的(它可能是正确的发布时,但从那时起已经有几个主要的jQuery验证插件更改)。

The validation plugin(目前)设计用于<form>上的<form> 。您还可以注意到all of the plugin documentation引用了表单,而不是任何其他通用容器。

插件本身在内部跟踪validator.currentForm,它指的是传入的选择器的this,获取.elements等等......这真的不起作用任何其他方式,而不是当前版本的编写方式。

此处的整体解决方案/替代方法:直接在<form>元素(相反的jQuery包装器)上调用.validate(),而不是任何其他容器。如果您不想验证输入字段,则可能需要使用<form>中的ignore: ':hidden'选项划分.validate()使用<fieldset>元素用户。

答案 1 :(得分:0)

你错过了一个结束括号。试试这个:

$("#pseudoForm").validate({
    onfocusout:true,
    rules:{
        first_name:"required",
        last_name:"required"
    }
});

答案 2 :(得分:0)

如果按类

选择表单,则会出现相同的错误

$(".form_class").validate(...

而不是ID   $("#form_id").validate(...

或标签名称   $("form").validate(...

答案 3 :(得分:0)

打开jquery.validate.jsjquery.validate.min.js并找到(ctrl + F)“标签”和replaceAll以及您所需的标记:

  

示例:div

然后执行验证。

答案 4 :(得分:0)

//HTML

<div class="form-group has-feedback col-xs-8 " style="padding-right:0px">
                <input type="tel" class="form-control" name="Otp_MobileNo" id="mobileNo" placeholder="Mobile No."  minlength="10" maxlength="10">
                <span id="mobileno_message"  style="display:none;color: red;">Please enter a valid Mobile No</span>
            </div>


    //Java Script
     $("#getOtp").click(function(){
         jQuery(document).ready(function(){





            var MobileNo = jQuery("#mobileNo").val();
            var MobileNoLength = MobileNo.length;  
            var zipRegex = /^\d{10}$/;
             var mobileNo = $("#mobileNo").val();

            if (!zipRegex.test(MobileNo))
            { 
               jQuery('#mobileno_message').show();


            }
            else
            { 

              // success!

                 jQuery('#mobileno_message').hide();
                 $.ajax({
                type : 'POST',
                url  : '<?php echo site_url('Login/send_otp'); ?>',
                data : {Otp_MobileNo:mobileNo,},
                dataType    : 'json',
                beforeSend: function()
                { 
                  $("#error").fadeOut();
                },
                success :  function(response)
                { 
                alert(response.message_text);
                $("#check-otp").delay().animate({
                    height: 'toggle',
                  },
                  "slow");
                $("#getOtp").hide();
                }
             });





            }

          });



           });