不幸的是,我在寻找这个问题的解决方案方面没有取得多大成功,所以这里又一次......
基本上,我正在尝试使用我的错误消息来定位和替换现有input [label]标记的内容,而不是依赖于validate插件的默认行为,即。在我输入字段下方的DOM上添加另一个[label]。
这是形式,没什么特别的!
<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">
......这是脚本
<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) {},
});
正如你所看到的,我已经将errorPlacement代码留空了,希望有人可以帮助我填补空白。我试过以下但没有成功。
errorPlacement: function(error, element) {
error.insertBefore( element );
}
对此的任何建议都会很棒!我开始拔头发了; o(
欢呼声 Decbrad
答案 0 :(得分:1)
您应该可以在回调中执行类似的操作。
$('label[for="' + element.attr("id") + '"]').text(error.text());
我对此方法提出质疑,因为一旦错误得到解决,我认为你的标签就会消失。您可以使用我提供的方法查找其他标签并将其隐藏,但您还需要覆盖成功回调以再次显示原始标签。