【发布时间】:2014-02-14 13:25:06
【问题描述】:
我正在使用 jquery 验证加上来自 bassistance.de 的插件,验证错误显示在屏幕的特定区域,而不是在无效的表单元素之外,这是通过在有效的() 方法。
<div id="errbox" style="display: none"></div><br />
<form id="myform" method="post" action="#">
<fieldset>
<legend>1. Personal Details</legend>
<label for="firstName">First Name:</label>
<input type="text" id="firstName" name="firstName" size="30" required />
<br /><br />
<label for="lastName">Last Name:</label>
<input type="text" id="lastName" name="lastName" size="30" required />
</fieldset>
<br />
<input type="submit" value="Go" />
</form>
我希望只要输入已被更正并且它对验证规则有效,错误消息就会消失/清除。如果我取出 errorPlacement 代码并将消息显示在无效元素旁边,则会发生这种情况,但如果我在指定框中显示错误消息,则不会。
这是我的js代码
$("#myform").validate({
messages: {
firstName: {required: "Please enter your First Name"},
lastName: {required: "Please enter your last name -
your maiden name if married"},
},
invalidHandler: function(form, validator) {
// This handler will show only one error at time - the first in this instance //
var errors = validator.numberOfInvalids();
if (errors) {
$("#errbox").html(validator.errorList[0].message);
$("#errbox").show();
validator.errorList[0].element.focus();
} else {
$("#errbox").hide();
}
},
errorPlacement: function(error, element) {
// Override error placement to not show error messages beside elements //
},
});
您可以在这里尝试代码:http://jsfiddle.net/E7yPf/
我尝试显式声明 onKeyUp 和 onFocusOut 属性并将它们设置为 true,但没有效果。
这里有没有人可以帮助或指出正确的方向?
谢谢
【问题讨论】:
-
为什么你不能使用jquery parsley 更简单,我们可以控制在我们手中
-
请不要“标记垃圾邮件”。 jquery-validation-engine 是一个完全不同的插件。