私はここにあるデモjquery検証プラグインを達成しようとしています。しかし、私が解決したいのは、ページの読み込み後に[送信]をクリックすると、プラグインに十字記号付きの検証メッセージが表示されることです。また、何かを入力すると、メッセージがチェックマーク画像に変わります。ただし、テキストを再度削除すると、検証メッセージが表示されますが、クロスイメージではなくチェックマークが表示されます。私のウェブサイトでこれを修正したい:
クライアント側の検証にjquery.validateを使用しています。検証のメッセージとともに右と十字のアイコンを表示するために、私はicomoonsアイコンセット(cssアプローチ)を使用しています。以下にHTMLとJSスクリプトを追加しました。エラー配置を使用してデフォルトのコンテナを変更しようとしましたが、テキストボックスに何かを入力してから再度削除しても、アイコンを十字から右に変更しても変更されません。メッセージは表示されますが、アイコンは変わりません。
また、jquery.validateを記述して、ここで行っているアイコンアプローチを実現するためのより効率的な方法を学びたいと思います。
ここのHTMLセクション:
<!-- First step - form section starts here -->
<form class="form-horizontal" id="sampleForm">
<div class="control-group">
<label class="control-label" for="firstName">First Name:</label>
<div class="controls">
<input type="text" id="firstName" name="firstName" placeholder="Peter">
<div class="errormsgwrapper">
<span data-icon="" class="right hidden" aria-hidden="true"></span>
<span data-icon="" class="wrong hidden" aria-hidden="true"></span>
<div class="errormessage"></div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="lastName">Last Name:</label>
<div class="controls">
<input type="text" id="lastName" name="lastName" placeholder="Parker">
<div class="errormsgwrapper">
<span data-icon="" class="right hidden" aria-hidden="true"></span>
<span data-icon="" class="wrong hidden" aria-hidden="true"></span>
<div class="errormessage"></div>
</div>
</div>
</div>
<div class="control-group">
<div class="controls pull-right">
<button type="submit" class="btn">Next »</button>
</div>
</div>
</form>
<hr>
<!-- /form -->
検証スクリプト:
$().ready(function() {
// validate signup form on keyup and submit
$("#sampleForm").validate({
rules: {
firstName: "required",
lastName: "required"
},
highlight: function(label) {
$(label)
.closest('.control-group').removeClass('success').addClass('error');
$('label.error').removeClass('checked');
},
success: function(label) {
label.parents(".errormsgwrapper").children('.wrong').addClass('hidden');
label.parents(".errormsgwrapper").children('.right').removeClass('hidden');
label.closest('.control-group').addClass('success');
},
messages: {
firstName: {
required: "asdfds"
},
lastName: "Please enter your lastname"
},
errorPlacement: function(error, element) {
var errormsgwrapper = element.next(".errormsgwrapper");
errormsgwrapper.children("span.right").addClass('hidden');
errormsgwrapper.children("span.wrong").removeClass('hidden');
error.appendTo(errormsgwrapper.children(".errormessage"));
}
});
});