我正在使用 jquery 验证插件,并且验证工作几乎按照我想要的方式进行,但我遇到了一个小问题。
验证输入字段后,我会在输入字段旁边显示一个绿色勾号,表示该字段已成功验证。
如果页面上有错误,我会在页面顶部显示一条错误消息,指示无效字段的数量。
所有这一切都很好。
如果输入字段被修改并且不再有效,则会出现此问题。验证删除会删除输入字段旁边的绿色勾号,这是正确的,但随后会在输入字段旁边显示默认错误消息。我不想在输入字段旁边显示错误消息。
当字段无效时,如何删除默认错误消息文本?
<script type="text/javascript">
var j$ = jQuery.noConflict();
j$(document).ready(function(){
j$.validator.addMethod("money", function(value, element) {
return this.optional(element) || /^(\d{1,3})(\.\d{2})$/.test(value);
}, "Must be in US currency format 0.99");
var validator = j$('[id$=Details]').validate({
invalidHandler: function() {
j$("#error-message").html('<img src="{!URLFOR($Resource.event_ver2, 'images/error-icon.png')}" width="32" height="32">').append(" Please correct the entries highlighted below. " + validator.numberOfInvalids() + " field(s) are invalid.");
},
success: function(label, element) {
label.html('<img src="{!URLFOR($Resource.event_ver2, 'images/success-icon.png')}" width="16" height="16" class="validated">').insertAfter(element);
},
errorPlacement: function(error, element) {
return false;
}
});
j$('[id$=Email]').rules("add",{
required: true,
email: true
});
j$('[id$=Credit_Amount]').rules("add",{
required: true,
'money': true
});
j$('[id$=Credit_Card_Number]').rules("add",{
required: true,
creditcard2: function() { return j$('[id$=Credit_Card_Type]').val(); }
});
j$('[id$=Verification_Code]').rules("add",{
required: true,
digits: true
});
j$('[id$=Credit_Card_Type]').change(function(){j$('[id$=Details]').validate().element('[id$=Credit_Card_Type]') });
});
</script>
谢谢你的帮助。