如何重构重复的 jquery 验证方法
How can I refactor duplicate jquery validation methods?
在我的rails应用程序中,我有这个jquery验证页面加载时加载的js.erb文件中的代码。
if ($('#custom-tag').length) {
$('#custom-tag').validate({
onfocusout: false,
rules: {
tag: {
minLengthSquish: 2,
maxLengthSquish: 25
}
},
tooltip_options: {
tag: { placement: 'right', animation: false }
}
});
}
表单在页面加载时存在,但用户可以通过 ajax 请求添加和删除标签。 对于每个请求,表单都会重新呈现,因为表单仅在标签计数为 5 或更少时才显示,因此我需要在每次加载表单时重新初始化 jquery 验证。 同样的代码存在于我的 add_tag.js.erb 和 remove_tag.js.erb 文件中,这些文件是通过 ajax 从控制器调用的。
我只是想知道在三个地方拥有这个重复的代码是否是实现这一目标的唯一方法。
表单在页面加载时存在,但用户可以通过 ajax 请求添加和删除标签。对于每个请求,表单都会重新呈现,因为表单仅在标签计数为 5 或更少时才显示,因此我需要在每次加载表单时重新初始化 jquery 验证。
您不能在同一表单上"重新初始化"jQuery Validify。 对.validate()
的后续调用始终被忽略。
无论何时更改窗体,都可以使用 .rules()
方法动态add
和remove
规则。
// on page load
$('#custom-tag').validate({ // initialize plugin on the form; can only be done once
// options, etc.
onfocusout: false,
rules: { // initial rules
tag: {
minLengthSquish: 2,
maxLengthSquish: 25
}
}
});
// make changes dynamically
$('.newfields').each(function() { // add rules to multiple fields
$(this).rules('add', {
minLengthSquish: 5,
maxLengthSquish: 50
});
});
$('[name="tag"]').rules('add', { // add rules to one field
minLengthSquish: 30,
maxLengthSquish: 55
});
$('[name="tag"]').rules('remove'); // remove all rules from one field
相关文章:
- 如何使用jQuery验证引擎验证组
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- jQuery验证器添加方法未定义
- jQuery验证插件submitHandler Ajax
- 使用jquery验证函数不适用于select元素
- 动态jQuery验证
- 如果使用jQuery验证器插件找到单选按钮,则将不同的addMethod应用于字段
- 使用jquery验证信用卡
- 未使用jQuery验证器选中Css样式复选框时
- 自定义jquery验证器
- Jquery验证消息更改(自定义消息集)
- 时间日志的javascript/jquery验证(5小时3米)
- jQuery 验证正在复制 else 语句 |验证完成后,不会打印值
- 将动态验证文本添加到自定义jQuery验证规则中
- Jquery 验证插件 - 字段仍然产生错误
- 验证字段名称 添加 与 使用 jquery 验证
- JQUERY 验证 - 序列化选择和复选框
- jQuery 验证 - 调用某些元素的 .valid() 方法不会清除错误
- 带有jquery验证问题的php表单