我正在向jQuery验证表单动态添加规则。此规则是动态添加的,因为字段名称包含变量。这是代码。
$('#message_' + default_language_id + '_0').rules('add', {
required: true,
messages: {
required: "something is wrong."
}
});
我希望此规则在验证表单时使用匿名函数执行操作。但是,如果没有在文档准备好的情况下执行函数,我无法找到一个选项/方法来执行此操作。
这是一个扩展的代码段,可以将其置于更多上下文中:
$(document).ready(function(){
var default_language_id = $("#default_language_id").val();
var validator = $("#message_form").submit(function() {
tinyMCE.triggerSave();
}).validate({
ignore: "",
rules: {
publish_date: {
check_publish_date: true,
check_expiry_date: true
},
expiry_date: {
check_expiry: true,
}
},
errorElement: "span",
errorClass: "help-block",
highlight: function (element, errorClass, validClass) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element, errorClass, validClass) {
$(element).closest('.form-group').removeClass('has-error');
},
errorPlacement: function (error, element) {
if (element.parent('.input-group').length || element.prop('type') === 'checkbox' || element.prop('type') === 'radio') {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
$('#message_' + default_language_id + '_0').rules('add', {
required: true,
messages: {
required: "something is wrong"
},
});
所以,我最终想要的是这样的事情(这不起作用):
$('#message_' + default_language_id + '_0').rules('add', {
required: true,
messages: {
required: "something is wrong."
},
onsubmit: function(){
alert("I am only triggered when the form errors on this rule");
}
});
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:0)
解决方案是:
$('#message_' + default_language_id + '_0').rules('add', {
my_new_rule: true
});
$.validator.addMethod("my_new_rule", function(value, element) {
// My rule
}, "something went wrong");