Rom*_*pin 6 jquery jquery-validate
我正在尝试熟悉jQuery验证自定义方法,似乎有点困惑.为什么我的自定义方法中的this.optional(元素)总是返回false?
这是我的代码示例:
<script type="text/javascript">
    $(document).ready(function(){
        $.validator.addMethod('customemethod', function(val, el){
            return this.optional(el) || false;
        }, 'custom method says its INVALID !');
        $('#myform').validate({ignore: '*[ignore]'});
        $('#validate').click(function(){
            $('#result').text($('#myform').validate().form());
            return false;
        });
    });
</script>
<form id="myform">
    <div><input type="text" id="customfield" name="customfield" /></div>
    <script type="text/javascript">
        $(document).ready(function(){$('#customfield').rules('add', { required: true, customemethod: true } ) } );
    </script>
    <div><input type="text" id="customfield2" name="customfield2" /></div>
    <script type="text/javascript">
        $(document).ready(function(){$('#customfield2').rules('add', { required: false, customemethod: true } ) } );
    </script>
    <div id="result"></div>
    <input id="validate" type="submit" />
</form>
如果元素不是必需的并且它的值不为空 - 调用验证方法,在这种情况下我需要返回true.但是this.optional(el)总是假的:(
我怎么解决呢?如何检查自定义方法中是否需要元素?谢谢.
optional如果值不为空,则为false,因此您可以对该字段执行验证,但前提是它不为空.例如,如果电子邮件地址是可选的,则必须验证格式,但仅限于提供值.optional如果未提供值,则返回true,因此不执行其余的评估.这是此方法的目的.如果您需要价值不是空的,则必须要求它.如果您需要空或不空,您根本不需要验证.
| 归档时间: | 
 | 
| 查看次数: | 7158 次 | 
| 最近记录: |