私は jquery 検証プラグインを使用しており、検証はほぼ希望どおりに機能していますが、小さな問題が 1 つあります。
入力フィールドが検証されると、フィールドが正常に検証されたことを示す入力フィールドの横に緑色のチェック マークが表示されます。
ページにエラーがある場合は、ページの上部に無効なフィールドの数を示すエラー メッセージを表示します。
これはすべて正常に機能します。
この問題は、入力フィールドが変更されて無効になった場合に発生します。検証により、入力フィールドの横にある緑色の目盛りが削除されますが、これは正しいですが、入力フィールドの横にデフォルトのエラー メッセージが表示されます。入力フィールドの横にエラー メッセージを表示したくありません。
フィールドが無効になったときにデフォルトのエラー メッセージ テキストを削除するにはどうすればよいですか?
<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>
助けてくれてありがとう。