gpt4 book ai didi

javascript - Jquery 验证不适用于日期选择器的输入

转载 作者:行者123 更新时间:2023-11-30 14:57:19 25 4
gpt4 key购买 nike

Jquery validate 对于其他输入工作正常,但对于那些初始化了日期选择器的输入,即使输入了有效输入,它也不会更新错误消息。我还发现,如果使用有效输入选择(聚焦)元素内的值并将其聚焦在元素之外,则错误消息消失,这就是我尝试 $(element).select() 的原因,它有效但它有缺点...

<div class="form-group">
<label for="date_of_birth" class="col-sm-4 control-label">Date of Birth <span class="input-required">*</span></label>
<div class="col-sm-7">
<div class='input-group date' id='date_of_birth'>
<input type='text' class="form-control dateField" name="date_of_birth" placeholder="MM/DD/YYYY" id="date_of_birth_field" data-toggle="tooltip" data-placement="top"value=""/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span> </span>
</div>
</div>
</div>

如果有帮助的话,这就是 datePicker 的初始化方式..

$('#date_of_birth').datetimepicker({
format: 'MM/DD/YYYY',
language: 'en',
maxDate: new Date,
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-arrow-up",
down: "fa fa-arrow-down"
}
});

这是一个验证脚本:

$.validator.setDefaults({
errorClass: 'help-block',
errorElement: 'span',
focusInvalid: true,
ignore: ":hidden",
highlight: function(element, errorClass, validClass)
{

var fieldtype = ($(element).hasClass('dateField') ? 'dateField' : 'normal');
switch(fieldtype)
{
case "dateField":
$(element).closest('.form-group').addClass('has-error');
// $(element).select();
break;
default:
$(element).closest('.form-group').addClass('has-error');
break;
}

},
unhighlight: function(element, errorClass, validClass)
{
if($(element).hasClass('select2-offscreen'))
{
$(element).closest('.form-group').removeClass('has-error');
$(element).next('span').css({display: "none"});
}

else
{
$(element).closest('.form-group').removeClass('has-error');
}
},

errorPlacement: function (error, element) {
var fieldtype = ($(element).hasClass('dateField') ? 'dateField' : 'normal');

switch (fieldtype) {
case "dateField":
error.appendTo(element.parent().parent());
break;
default:
error.appendTo(element.parent());
break;
}
}
});
$('#employee-form').validate(
{
rules: {
date_of_birth: {
gbdDate: true,
required: true
}
},
messages: {
date_of_birth: "Please enter valid date";
}
});

我知道这一切又长又无聊,但我无法让它在 JSfiddle 中运行……请有人帮我解决这个问题……

最佳答案

找到我的答案:SparkBox

$('.dateField').datepicker({
onClose: function()
{
$(this).valid();
}
});

这解决了它...

关于javascript - Jquery 验证不适用于日期选择器的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com