如何在输入模糊后调用功能?

时间:2014-09-24 17:18:10

标签: javascript jquery jquery-ui datepicker

我正在使用 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

2 个答案:

答案 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);
});

http://jsfiddle.net/D4AGz/96/