gpt4 book ai didi

jQuery:验证是否选择了多个复选框之一(不同名称,使用 jQuery 验证插件)

转载 作者:行者123 更新时间:2023-11-30 23:56:47 24 4
gpt4 key购买 nike

我有一个包含许多复选框的表单(太多了,以至于无法使用自己的规则),并且我需要使用 jQuery Validation Plugin以确保至少选择其中之一。它们都有不同的名称,因此到目前为止我通过 Google 搜索找到的大多数解决方案都不适合我。

但是,我遇到了this帖子,我对其进行了一些调整以实现此扩展方法:

// method for checking out checkboxes for the form validation
$.validator.methods.checkboxes_checked = function(value,element,param) {
return ($('#signup #checkboxes input[type=checkbox]:checked').length > 0);
}

...返回 true 或 false,具体取决于是否选择了任何复选框。我不想逐字使用上面帖子中的方法,因为这需要为每个复选框制定单独的规则,而且我有很多(20+),这对我来说没有多大意义。

我唯一的问题是我不知道如何将其连接到我的验证调用中,因为我在页面上也没有一个“单个”元素来绑定(bind)它(例如,我所有其他验证规则都是绑定(bind)到特定的单个元素,而我上面的扩展方法本质上是绑定(bind)到 20 多个元素)。这是我的验证调用现在的样子:

// validate the form
$('#signup').validate({
rules: {
'bedrooms': { required: true },
'maxrent': { required: true },
'term': { required: true },
'movedate': { required: true },
'firstname': { required: true, minlength: 2 },
'lastname': { required: true, minlength: 1, maxlength: 1 },
'email': { required: true, email: true },
'day_telephone': { required: true, digits: true, minlength: 10, maxlength: 10 }
},
errorPlacement: function(error, element) { error.css('display','none'); },
highlight: function(element, errorClass) {
$(element).fadeOut(function() { $(element).fadeIn(); });
$('label[for='+$(element).attr('name')+']').css('color','red');
},
unhighlight: function(element, errorClass) { $('label[for='+$(element).attr('name')+']').css('color','black'); },
onkeyup: false
});

基本上,我希望表单本身在提交之前检查(使用 jQuery 验证插件)我的扩展方法是否返回 true。我怎样才能添加这个?

最佳答案

我不知道您的公式看起来如何以及您想要错误消息的位置,但您是否尝试过添加自定义验证方法?

$.validator.addMethod("checkboxes", function(value, element) {
return $('input[type=checkbox]:checked').length > 0;
}

然后将其添加为仅适用于其中一个复选框的规则:

rules: {
'idofacheckbox' : { checkboxes: true }
}

如果至少选中一个复选框,则该复选框将有效;如果没有选中,则该复选框无效。

关于jQuery:验证是否选择了多个复选框之一(不同名称,使用 jQuery 验证插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com