gpt4 book ai didi

javascript - 如何在输入周围验证和包装错误消息?

转载 作者:行者123 更新时间:2023-11-29 18:08:04 25 4
gpt4 key购买 nike

我在我的输入中使用了很棒的 jQuery 验证插件:

<input type="text" name="name" value="" />

我想添加这个结构(在我的输入周围添加一个 div.error 并在 div 中显示我的错误标签),像这样:

<div class="error">
<label id="name-error" class="error" for="name">This field is required.</label>
<input type="text" name="name" value="" />
</div>

我试过使用 errorPlacement 函数,但我做不到。

最佳答案

jQuery Validate 插件自动创建和切换错误消息元素。

  1. 您可以使用the errorElement option 指定元素的类型,例如divlabel 等。 .默认为 label

  2. 您可以使用 the errorPlacement option 内的各种 jQuery 方法指定此错误消息元素的位置,例如之前、之后、父级内部等。 .默认在 input 元素“之后”。

但是,您不能轻易地将错误消息元素包裹在 input 元素周围。虽然可以在 errorPlacement 选项中使用 jQuery 来执行此操作,但当需要清除错误时就会出现问题。当需要清除消息时,该插件将自动删除/隐藏错误消息元素,并且您的 input 元素将随之删除/隐藏。

解决方案是自己创建外部 div 并使用 highlightunhighlight在这个外部 div 上切换错误类的选项。您还必须记住在 highlightunhighlight 中包含默认代码,否则默认行为将被破坏。由于您想要的类是默认错误类,您可以简单地在 highlightunhighlight 选项中使用 errorClass 参数。

您的 HTML:

<div>
<input type="text" name="name" value="" />
</div>

您的.validate() 方法:

$('#yourForm').validate({
// rules and options,
errorPlacement: function(error, element) {
error.insertBefore(element);
},
highlight: function(element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass); // <- default behavior
$(element).parent('div').addClass(errorClass); // <- add error class to your parent div
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass); // <- default behavior
$(element).parent('div').removeClass(errorClass); // <- remove error class from your parent div
}
});

验证错误期间 DOM 中的最终结果:

<div class="error">
<label id="name-error" class="error" for="name">This field is required.</label>
<input type="text" name="name" value="" />
</div>

关于javascript - 如何在输入周围验证和包装错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857269/

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