フォームに jquery 検証プラグインがあります。現在、そのように構成されているため、入力に境界線の色が追加されます。フィールドで検証が失敗した場合、境界線は赤になり、正しい場合は境界線が緑になります。その設定のために、メッセージの表示を無効にしました。
しかし、入力フィールドの下の 1 つの区切られた div にすべてのメッセージを表示する必要があります。そして、私はそれを行う方法がわかりません。
ここで現在の状況を確認できます: http://jsfiddle.net/dzorz/akLQR/
「name」と「place」は私のフィールドの 2 つです。「messages_container」は、スクリプトで定義された 2 つのメッセージを表示する div です。
html:
<form class="form-horizontal" id="gold_form" method='post' action='/start_ajax/addgold/'>
<fieldset>
<span class="label-f">Name</span>
<input type="text" class="span4" id="name" name="name">
</br>
<span class="label-f">Place</span>
<input type="text" class="span4" id="place" name="place">
</br>
<div class="messages_container">
</div>
<button type="submit" id="submit_btn" class="btn btn-primary btn-large">Submit</button>
</fieldset>
</form>
脚本:
//validation
$().ready(function() {
$("#gold_form").validate(
{
rules:{
name: "required",
place: "required"
},
messages:{
name: "Please input your name.",
place: "Please input your name.",
},
errorPlacement: function(error, element) {
$(element).filter(':not(.valid)').addClass("invalid");
},
success: function(error) {
$("#gold_form").find('.valid').removeClass("invalid").addClass("success");
},
});
});
CSS:
@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
.invalid {
border: 1px solid red !important;
}
.success{
border: 1px solid green !important;
}
.messages_container{
border: 1px solid;
width:300px;
height:150px;
margin-left:37px;
}
私のjsfiddleを自由にフォークまたは更新できます.アイデアや解決策を教えてください。