0

嗨,我正在使用 jquery 版本 1.6.2 和 jquery 验证插件 1.5.2,

我有一个自定义验证器

jQuery.validator.addMethod("venue_type", function(value, element) {
    if(value>0){return true;}else{return false;}
}, "venue type is required");

检查下拉值是否被选中。

我有一个表格叫venue_edit_form

<form id="venue_edit_form" class="venue_edit_form"
    directory_id="<?php echo $venue_details->DirectoryID; ?>">

//code 


</form>

我在这个表单中添加了一个 jquery 验证

jQuery('#venue_edit_form').validate({
    rules:{
        venueName:{
            required:true,
            minlength:1,
            maxlength:50
        },
        venueDescription :{
            required:false,
            lettersonly:true,
            maxlength:150
        }
    },
    messages:{
        venueName: {
            required:"Venue name is required",
            minlength:"Minimum 1  character required",
            maxlength:"Venue name should not exceed 50 characters"
        }, 
        venueDescription:{                  
            maxlength:"Description should not exceed 150 characters"
        }
    }
});

我只验证场地名称和描述,但是当我验证表单时,会附加这个奇怪的东西。

在此处输入图像描述

出现错误,但我没有验证编辑表单中的下拉菜单,然后我检查源

在此处输入图像描述

保存按钮中有一个名为venue_type的自定义属性

我很惊讶,我更改了自定义验证器名称

jQuery.validator.addMethod("venue_type_validater", function(value, element) {
    if(value>0){return true;}else{return false;}
}, "venue type is required");

现在它工作正常,

为什么那个自定义属性会出错,我认为 jquery 验证插件是按字段名称验证的。

这是一个错误????

请告诉我发生了什么。

提前致谢 。

4

1 回答 1

1

如果您从验证插件中查看以下代码,它还使用了属性规则

    var data = $.validator.normalizeRules(
    $.extend(
        {},
        $.validator.classRules(element),
        $.validator.attributeRules(element),
        $.validator.dataRules(element),
        $.validator.staticRules(element)
    ), element);

在 attributeRules 中,如果元素中的属性与规则名称匹配,则该规则将应用于该元素

尝试

jQuery('#venue_edit_form').validate({
    ignore: ':hidden, #venue_edit_save',
    rules:{
        venueName:{
            required:true,
            minlength:1,
            maxlength:50
        },
        venueDescription :{
            required:false,
            lettersonly:true,
            maxlength:150
        }
    },
    messages:{
        venueName: {
            required:"Venue name is required",
            minlength:"Minimum 1  character required",
            maxlength:"Venue name should not exceed 50 characters"
        }, 
        venueDescription:{                  
            maxlength:"Description should not exceed 150 characters"
        }
    }
});
于 2013-07-18T09:07:48.110 回答