我的表單上有兩個字段。一個是名字的簡單輸入,另一個是「vitalets bootstrap datepicker」。我決定使用jquery驗證插件,因此當第一個'名字'留空時會變紅,而第二個'date_birth'如果保持默認值,它也會變成紅色。所以你必須插入一個名字,你必須選擇一個日期而不是默認的日期。jQuery與datepicker驗證,突出顯示的問題
我已經添加了一個errorPlacement和成功規則,正如我所描述的那樣。但問題出在我'date_birth'的領域。當你不選擇其他日期時它會變紅,但如果你選擇其他日期是正確的,那麼第二次在提交後會變紅。它不會變綠爲上面的 '名字' 字段....
這裏是的jsfiddle情況:http://jsfiddle.net/dzorz/5xgfm/
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">Date of birth</span>
<div class="input-append date notification" id="date_birth_picker" data-date="1980-01-01" data-date-format="yyyy-mm-dd">
<input class="span2" size="16" type="text" value="1980-01-01" readonly="" id="date_birth" name="date_birth">
<span class="add-on"><i class="icon-th"></i></span>
</div>
</br>
<button type="submit" id="submit_btn" class="btn btn-primary btn-large">Submit</button>
</fieldset>
</form>
腳本:
//datepicker
$(function(){
window.prettyPrint && prettyPrint();
$('#date_birth_picker').datepicker({
autoclose: true,
weekStart: 1,
});
});
//validation
$().ready(function() {
jQuery.validator.addMethod("defaultInvalid", function(value, element){
switch (element.value){
case $(element).prop("defaultValue"):
if (element.name == "date_birth") return false;
break;
default: return true;
break;
}
});
$("#gold_form").validate(
{
rules:{date_birth: "required defaultInvalid",
name: "required",
family_name: "required"
},
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');
.error {
float: none; color: red !important; padding-left: .5em;
vertical-align: top;
}
.invalid {
border: 1px solid red !important;
}
.success{
border: 1px solid green !important;
}
我錯過了什麼或什麼?你可以自由編輯我的jsfiddle。
感謝您的幫助
人認爲的偉大工程!謝謝 – dzordz