gpt4 book ai didi

jquery - 验证共享相同名称的输入

转载 作者:行者123 更新时间:2023-12-01 03:51:30 25 4
gpt4 key购买 nike

我使用的方法如下所述:http://iamcam.wordpress.com/2008/01/15/unchecked-checkbox-values/即使未选中该复选框也要获得一个值,我不会详细说明为什么我需要这个,但这是必要的。话虽这么说..

所有这些美妙的方法都是我自己编写的表单抽象层的一部分,我有几个复选框我希望通过 jquery validate 进行验证,问题是 html 是这样的:

<input class="" type="hidden" value="0" name="check[legal]">
<input id="legal" class="required" type="checkbox" name="check[legal]" value="1">

发生的情况是 jquery validate 验证两个输入的第一个输入(因为它们具有相同的名称。我知道我可以简单地删除第一个并完成它,我只是想知道是否有任何方法可以验证第二个复选框,让一切保持原样(我可以在这里看到两条路:1)从 id 进行验证输入的2)从验证中排除隐藏元素,即使我认为这样可以避免第二个具有相同名称的元素..)

最佳答案

好的,您问题的直接答案是您可以将自定义验证方法定义为 shown in this example 。这是关键代码:

$.validator.methods.checkLegal = function(value, element) {
return $('input[type=checkbox][name="check[legal]"]').attr('checked');
}

$('form').validate({
rules: { "check[legal]": {checkLegal: true} },
messages: { "check[legal]": "You must check the box" },
});

但是,您的字段不需要具有相同的名称即可使用您提供的链接中描述的原理。事实上,如果你不这样做,事情会大大简化。如果这不是复选框列表,还不清楚为什么变量名称中需要大括号。

也就是说,here is a simple example不使用相同的名称,存储隐藏值并验证可见复选框。上述内容的替代品是:

jQuery(function($) {
$('form').validate({
rules: { "check[legal]": "required" },
});

$('#legal').click(function(e) {
$('#legalHidden').val($(this).attr('checked') ? 1 : 0);
});

});

在服务器上,您只需引用 check[legalhidden] 而不必担心 check[legal]。在客户端上,所有验证都是在 check[legal] 上完成的,并且每次单击时都会将值复制到 legalhidden var 中。

关于jquery - 验证共享相同名称的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139336/

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