我正在尝试用错误消息定位并替换现有输入 [label] 标记的内容,而不是依赖于验证插件的默认行为,即。在输入字段上方或下方的 DOM 中添加另一个 [标签]。
这是表格,没什么花哨的!
<form id="loginForm" action="testing.htm">
<label for="username">Username</label>
<input id="username" name="username" type="text">
<label for="password">Password</label>
<input id="password" name="password" type="text">
<label for="clientid">Client ID</label>
<input id="clientID" name="clientID" type="text">
<input id="submitButton" name="submitButton" type="submit" value="Login">
</form>
...这是脚本
<script type="text/javascript">
$("#loginForm").validate({
rules: {
username: "required",
password: {
required: true,
digits: true
},
clientID: "required"
},
messages: {
username: "Please enter your username",
password: "Please enter your password",
clientID: "Please enter a client ID"
},
errorPlacement: function(error, element) {},
});
</script>
正如你所看到的,我将 errorPlacement 代码留空,希望有人可以帮助我填补空白。我尝试了以下方法,但没有成功。
errorPlacement: function(error, element) {
error.insertBefore( element );
}
最佳答案
您应该能够在回调中执行类似的操作。
$('label[for="' + element.attr("id") + '"]').text(error.text());
不过,我对这种方法提出质疑,因为一旦错误被修复,我认为你的标签就会消失。您可以使用我提供的方法来查找其他标签并将其隐藏,但您还需要重写成功回调以再次显示原始标签。
关于jquery - 将标签内容替换为错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077902/