如何通过jQuery Validation的data-rule属性使用文件验证子规则?
解决方法
要通过data-rule属性实现jquery.validate.file的文件验证规则,需遵循以下正确写法:
单个文件输入框的完整示例
<input type="file" name="example_file" data-rule-filetype="true" data-rule-filetype-types='["pdf", "jpeg", "jpg"]' data-rule-maxfilesize="true" data-rule-maxfilesize-unit="KB" data-rule-maxfilesize-size="100" />
关键说明
- 启用验证规则:必须先通过
data-rule-方法名="true"启用对应验证规则(比如data-rule-filetype="true"开启文件类型验证,data-rule-maxfilesize="true"开启文件大小验证),仅传参数但不启用规则会导致验证无效。 - 参数格式要求:
- 数组类型参数(如
types)需用单引号包裹JSON数组,避免与HTML属性的双引号冲突; - 普通键值对参数(如
unit、size)直接用data-rule-方法名-参数名="值"的格式传递即可。
- 数组类型参数(如
- 大小写规范:验证方法名和参数名需与插件定义一致,比如
fileType在data属性中要写成小写的filetype,maxFileSize对应maxfilesize(jQuery Validate解析data属性时默认识别小写形式)。
原写法无效的原因
你之前使用的data-rule-fileType-types="['pdf', 'jpeg', 'jpg']"存在两个问题:
- 未添加
data-rule-fileType="true"启用该验证规则; - 方法名使用了驼峰写法
fileType,而jQuery Validate解析data属性时默认识别小写的filetype。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

