jquery - 如何对特定元素使用 errorPlacement?

发布于 2024-09-28 22:30:20 字数 715 浏览 1 评论 0原文

我有一个复选框,后面有一个文本,例如;
[checkbox]我同意

如果提交时未单击复选框,则当前显示错误消息的方式是(我使用 errorElement:"div");

[复选框]
此字段为必填字段。
我同意**

我宁愿喜欢;
[复选框]我同意
此字段是必需的

知道如何完成此操作吗?

我所拥有的相关复选框和文本元素的 html 换行如下;
[div] [checkbox] 我同意 [/div] [div][/div]

我尝试了 errorPlacment: 如下,希望仅将其应用于该元素;< br>

...            
messages: {
    usage_terms: {
        required: "Must agree to Terms of Use.",
    //errorElement: "div"
    errorPlacement: function(error, element) {
        error.appendTo( element.parent("div").next("div") );
        }
    }
}
...


没用。有什么想法吗?

I have checkbox and a text follows it, like;
[checkbox] I agree

If the checkbox is not clicked when submitting, the current way of showing the error msg I have is(I use errorElement:"div");

[checkbox]
This field is required.
I agree**

I would rather like;
[checkbox] I agree
This field is required

Any idea how to get this done?.

The html wrap for the concerned checkbox and text elements I have is like this;
[div] [checkbox] I agree [/div] [div][/div]

I tried errorPlacment: as follows hoping to apply it just for that element alone;

...            
messages: {
    usage_terms: {
        required: "Must agree to Terms of Use.",
    //errorElement: "div"
    errorPlacement: function(error, element) {
        error.appendTo( element.parent("div").next("div") );
        }
    }
}
...

It didn't work. Any idea?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随风而去 2024-10-05 22:30:20

errorPlacement 不在消息下方(作为选项),它是一个全局选项,所以它应该看起来像这样:

messages: {
  usage_terms: "Must agree to Terms of Use."
}
errorPlacement: function(error, element) {
  if(element.attr("name") == "usage_terms") {
    error.appendTo( element.parent("div").next("div") );
  } else {
    error.insertAfter(element);
  }
}

这里我们只是在决定它去哪里时检查元素名称,不过你可以做另一次检查,例如给所有行为类似的类,并执行 element.hasClass("placeAfter")

errorPlacement isn't underneath messages (as an option), it's a global option, so instead it should look like this:

messages: {
  usage_terms: "Must agree to Terms of Use."
}
errorPlacement: function(error, element) {
  if(element.attr("name") == "usage_terms") {
    error.appendTo( element.parent("div").next("div") );
  } else {
    error.insertAfter(element);
  }
}

Here's we're just checking the element name when deciding where it goes, you could do another check though, for example giving all the ones that behave like this a class, and doing element.hasClass("placeAfter").

如此安好 2024-10-05 22:30:20

文件 html

<label for="Q008" class="control-label titular">Question text 008 by example</small></label>
<input type="text" class="form-control" name="Q008" id="Q008" maxlength="500" />
<div id="Q008error"></div>

<label class="control-label titular">Question text 009 by example</label>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_1" value="1" />
    <label for="Q009_1">Text 91</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_2" value="2" />
    <label for="Q009_2">Text 92</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_3" value="3" />
    <label for="Q009_3">Text 93</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_4" value="4" />
    <label for="Q009_4">Text 94</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_5" value="5" />
    <label for="Q009_5">Text 95</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_6" value="6" />
    <label for="Q009_6">Text 96</label>
</div>
<div id="Q009error"></div>

jquery 验证文件

errorPlacement: function(error, element) {
    var elementForm = "", containerError = "";
    offset = element.offset();
    elementForm = element.attr("name");
    containerError = "#" + elementForm + "error";
    error.prependTo(containerError);
    error.addClass('message');
}

file html

<label for="Q008" class="control-label titular">Question text 008 by example</small></label>
<input type="text" class="form-control" name="Q008" id="Q008" maxlength="500" />
<div id="Q008error"></div>

<label class="control-label titular">Question text 009 by example</label>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_1" value="1" />
    <label for="Q009_1">Text 91</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_2" value="2" />
    <label for="Q009_2">Text 92</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_3" value="3" />
    <label for="Q009_3">Text 93</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_4" value="4" />
    <label for="Q009_4">Text 94</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_5" value="5" />
    <label for="Q009_5">Text 95</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_6" value="6" />
    <label for="Q009_6">Text 96</label>
</div>
<div id="Q009error"></div>

jquery validate file

errorPlacement: function(error, element) {
    var elementForm = "", containerError = "";
    offset = element.offset();
    elementForm = element.attr("name");
    containerError = "#" + elementForm + "error";
    error.prependTo(containerError);
    error.addClass('message');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文