gpt4 book ai didi

javascript - jQuery Unobtrusive Validation 中的分组错误

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:23 27 4
gpt4 key购买 nike

我有 3 行用户必须填写的复选框。验证是他必须在每一行中至少选择一个复选框。所以我创建了强制性规则,因为据我所知,必需的规则不适用于复选框。

这一切都很好。问题是,由于每一行都是一组,验证最终会给出 3 条不同的消息,尽管我真的只想要一条。

我创建了一个 example on jsFiddle .因此,如果您只需单击提交,就会看到 3 条不同的消息,但我只想要一条消息。有没有办法将它们结合起来?我已经看到它通过常规 jQuery 验证完成,但没有通过非侵入式验证完成。

我也在这里发布相关代码,但如果您点击 jsFiddle 链接,可能更容易看到。

<script type="text/javascript">
(function ($) {
$.validator.unobtrusive.adapters.addBool("mandatory", "required");
} (jQuery));
</script>
<form id="the_form" action="#" method="post">

<p>
<input type="checkbox" name="g1" data-val="true" data-val-mandatory="An answer is required for every row" value="1"/><span>A1</span>
<input type="checkbox" name="g1" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>A2</span>
<input type="checkbox" name="g1" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>A3</span>
</p>
<p>
<input type="checkbox" name="g2" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>B1</span>
<input type="checkbox" name="g2" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>B2</span>
<input type="checkbox" name="g2" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>B3</span>
</p>
<p>
<input type="checkbox" name="g3" data-val="true" data-val-mandatory="An answer is required for every row" value="1" /><span>C1</span>
<input type="checkbox" name="g3" data-val="true" data-val-mandatory="An answer is required for every row" value="1"/><span>C2</span>
<input type="checkbox" name="g3" data-val="true" data-val-mandatory="An answer is required for every row" value="1"/><span>C3</span>
</p>

<p class="field-validation-error" data-valmsg-for="g1" data-valmsg-replace="true"></p>
<p class="field-validation-error" data-valmsg-for="g2" data-valmsg-replace="true"></p>
<p class="field-validation-error" data-valmsg-for="g3" data-valmsg-replace="true"></p>

<input type="submit" value="Ok" />

</form>

最佳答案

您可以使用 CSS 隐藏除一条消息之外的所有消息。对于您的示例,使用 General sibling combinator CSS 选择器,您可以通过添加以下样式 (working example on jsFiddle) 来隐藏多余的消息:

p.field-validation-error ~ p.field-validation-error { display: none }

这将隐藏所有具有 .field-validation-error 类的 p 元素,如果它们前面有另一个带有 .field-validation-error 类(它们必须有相同的父类,但它们不必相邻)

关于javascript - jQuery Unobtrusive Validation 中的分组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676424/

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