我正在使用 jquery-ui datepicker 作为我的输入之一。如果用户从输入模糊,我显示相关消息(例如“需要该字段”)。为此,我有以下jQuery,它适用于简单的<select>
和<input type="text">
标记:
$("input").blur(function(){
if($(this).val()=="")
$(this).next().text("This field is required.");
else
$(this).next().text("");
});
但是,如果是datepicker(我必须基本上 模糊来选择日期),即使在之后,错误消息也会显示选择了日期(即选择日期是导致模糊事件)。这要求在模糊事件完成后(不是同时)将.blur(function(){});
称为。
如何解决这种情况?
这是DEMO。
答案 0 :(得分:3)
您可以将验证检查添加到datepicker的onClose事件,而不是输入字段的blur事件:
$("#datepicker").datepicker({onClose: function(selectedDate) {
if(!selectedDate) {
$(this).next().text("This field is required.");
}
}});
答案 1 :(得分:0)
有点骇客,但你可以用setTimeout
延迟支票:
$("input").blur(function () {
var $t = $(this);
setTimeout(function () {
if ($t.val() == "") $t.next().text("This field is required.");
else $t.next().text("");
}, 100);
});