jQuery Validate插件自定义方法不起作用

时间:2014-07-03 05:29:22

标签: jquery jquery-validate

<script> 
    $("#form").validate();
    $(document).ready(function ()  
    {
        var merror = '';    
        jQuery.validator.addMethod('mvalid', function(value, element) {  
        if($("#mobile").hasClass("required") == true && ($("#mobile").val().substr(0,1) != '7' ||$("#mobile").val().substr(0,1) != '8' ||
        $("#mobile").val().substr(0,1) != '9'))  {                                        
            merror = 'Enter correct Mobile No.';
            return false;                                                     
        }
            return true;        
        }, merror); 
    }); 
</script>

1 个答案:

答案 0 :(得分:1)

您不需要创建自定义方法来简单地显示required规则的自定义消息。只需使用messages选项。

$('#myform').validate({
    rules: {
        mobile: {
            required: true
        }
    },
    messages: {
        mobile: {
            required: 'Enter Mobile No.'
        }
    }
});

DEMO:http://jsfiddle.net/dLq5t/


修改

否则,如果您需要自定义规则,则该消息是其中的最后一项。它将在元素验证失败时显示。

jQuery.validator.addMethod('mvalid', function(value, element, params) {
     // your custom function
     // return true to pass validation
     // return false to fail validation and display error message
}, 'Enter Mobile No.');

请参阅文档:http://jqueryvalidation.org/jQuery.validator.addMethod/

BTW:您不需要在自定义函数中检查空字段,因为required规则已经处理了这个问题。而且,您不需要再次检查required class,因为该插件默认情况下已经这样做了。