我正在使用jquery验证插件:jQuery validation。现在,我有一个带有简单验证方法的代码片段,用于根据给定参数验证已选中复选框的数量
$.validator.methods.cbMinRequired = function (value, element, param) {
return $(element).parent().find(":checked").length >= param;
};
$(function () {
// validate the comment form when it is submitted
$("#myform").validate({
keyup: true,
keypress: true,
click: true,
change: true,
debug: true,
errorClass: "invalid",
rules: {
mycheckboxes: {
cbMinRequired: 1
}
}
});
});
查看我的小提琴:jsFiddle checkbox vaidation example
如您所见,我遇到了问题。
我必须首先触发“提交”来验证表单。但我想在加载后验证它。我认为没有最初触发提交的选项,因为最后我想用这个按钮触发'保存动作',在页面加载后不应该调用它。
任何想法如何处理这个?
答案 0 :(得分:1)
答案 1 :(得分:1)
您的代码:
$(function () {
$("#myform").validate({
keyup: true,
keypress: true,
click: true,
change: true,
debug: true,
errorClass: "invalid",
rules: {
mycheckboxes: {
cbMinRequired: 1
}
}
});
});
您的代码存在一个主要问题: There are no such options for this plugin名为keyup
,keypress
,click
或change
。它们被称为onkeyup
,onfocusout
,onclick
和onsubmit
,默认情况下它们已经为“true”...如果没有,它们将无法设置为true
打破插件。您只能将它们设置为false
以禁用,或将它们设置为自定义功能。
然后,您可以使用the .valid()
method以编程方式随时触发验证测试。
$("#myform").valid();
这将触发页面加载验证...
$(function () {
$("#myform").validate({ // initialize the plugin
// options
});
$("#myform").valid(); // trigger validation on page load
});
您的DEMO已更新:http://jsfiddle.net/sVwFb/4/
答案 2 :(得分:-1)
Barman是对的,但是如果你想提交onload并在第二次提交时处理提交,你可以使用一个标志变量并提交。
$('#myform').submit();
submitEnabled = true;
here jsFiddle已更新。