我正在寻找一种动态包含jquery验证规则的方法,因为我需要在不同的地方使用它们。
用户可以通过两种方式编辑新闻。第一种方法是使用jquery验证的常用表单。这没问题,一切正常。 但我也想在不重复规则的情况下使用jedery验证和jeditable。
所以目前我有这样的NewsValidator.js:
$("form").validate({
rules: {
title: {
required: true,
rangelength:[3,50],
},
content: {
required: true,
rangelength: [25, 250]
}
},
});
我的可编辑字段的代码如下所示:
$('.edit').editable('http://localhost/news/ajax', {
'id': 'news_id',
'name':'title',
'method': 'put',
submitdata : {
_method: "PUT",
content: $("div.content").text(),
},
error: function(){
alert('Something went wrong');
},
onsubmit: function(settings, td) {
$.getScript('../../js/validation/NewsValidator.js'); //-> this is not working (unexspected ) )
}
});
那么有没有人知道如何在onsubmit函数中使用我的验证器而不用复制和粘贴来保持干燥?
提前致谢。
答案 0 :(得分:1)
引用OP :
"我正在寻找一种动态包含jquery验证规则的方法"
动态添加,更改或删除规则的唯一方法是使用the .rules()
methods。
.rules('add')
动态添加新规则或覆盖现有规则。
.rules('remove')
动态删除现有规则。
<强>实施例强>:
$('#myField').rules('add', { // <- a single field
required: true,
digits: true
});
$('.manyFields').each(function() { // <- multiple fields at once needs '.each()'
$(this).rules('add', {
required: true,
digits: true
});
});
$('#myField').rules('add', { // <- a single field with custom messages
required: true,
digits: true,
messages: {
required: "this field is mandatory",
digits: "this field can only contain digits"
}
});
修改强>:
.validate()
方法用于初始化表单上的插件。它在DOM上调用一次,准备初始化表单上的插件,并忽略任何后续调用。换句话说,即使您想要,也不能重复.validate()
。这就是为什么开发人员提供诸如.rules('add')
之类的方法来动态操作设置的原因。
由于实际上不可能重复.validate()
方法,因此您重复使用任何代码都完全不清楚。