【发布时间】:2016-07-10 11:45:50
【问题描述】:
我正在使用 jQuery 验证插件,到目前为止一切顺利,直到我发现了一个小问题,但它对 UX 有很大影响。注意:其他表单验证运行良好。这是我启动 jQuery 验证的脚本
$(document).ready(function() {
//jquery validation plugin
$('#user-register-form').validate({
rules: {
fullname: {
minlength: 3,
required: true
},
email:{
email:true
},
password: {
minlength: 8,
required: true
},
bornday:{
required:true
},
bornmonth:{
required:true
},
bornyear:{
required:true
}
},
highlight: function(element) {
$(element).parents('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).parents('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'validation-error-message help-block form-helper bold',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
}); //end of document ready
<div class="form-group">
<label class="col-xs-12 col-sm-4 control-label" for="bornday">
Tanggal Lahir
<span class="text-red">*</span>
</label>
<div class="col-sm-8">
<div class="row">
<div class="col-md-3 col-sm-3 col-xs-4">
<select name="bornday" class="form-control input-w" required>
<option value="">Tanggal</option>
<?php for($i = 1; $i <= 31; $i++) {
$selected = $register_data['bornday'] == $i ? 'selected' : '';
$tgl = $i < 10 ? '0'.$i : $i; echo '<option value="'.$tgl. '" '.$selected. '>'.$i. '</option>';
} ?>
</select>
</div>
<div class="col-md-3 col-sm-3 col-xs-4">
<select name="bornmonth" class="form-control input-w" required>
<option value="">Bulan</option>
<?php foreach($month as $k => $v) {
$selected = $register_data['bornmonth'] == $k ? 'selected' : ''; echo '
<option value="'.$k.'" '.$selected.'>'.$v.'</option>';
} ?>
</select>
</div>
<div class="col-md-3 col-sm-3 col-xs-4">
<select name="bornyear" class="form-control input-w" required>
<option value="">Tahun</option>
<?php
$start_year = date('Y') - 75;
$end_year = date('Y') - 10;
for($y = $start_year; $y <= $end_year; $y++) {
$selected = $register_data['bornyear'] == $y ? 'selected' : '';
echo '<option value="'.$y. '" '.$selected. '>'.$y. '</option>';
} ?>
</select>
</div>
</div>
</div>
当我点击提交时,其他表单将被验证并更改为红色边框,包括错误消息,然后是这里的问题:
对于我的生日表单(带有 3 个<select> 字段),当我单击提交时,颜色不会立即变为红色。
但是当我点击其他任何地方时,颜色开始发生变化,但它突出显示了所有内容(可能是因为它影响了整个 .form-group)
注意: 只有当我没有完全填写生日时才会出现这个问题,但是当我没有选择任何日期时,边框颜色效果很好
这里是 jsfiddle 的链接
https://jsfiddle.net/d7bhax8q/1/
如果我需要添加更多细节,请告诉我,非常感谢您的帮助:)
【问题讨论】:
-
如果可能的话,请将示例演示链接放在 jsfiddle 中
-
我在你的小提琴中遇到了 Bootstrap/jQuery 错误。
-
sean,我检查了,我没有发现任何错误.. :( 我能帮忙吗?
标签: javascript jquery html css twitter-bootstrap-3