如何处理datepicker控件?

时间:2013-04-04 21:01:41

标签: jquery jquery-ui datepicker

我在文本框上使用jquery ui datepicker控件,同时我使用onblur事件进行验证。现在问题是当出现点击文本框和日历时,当您选择日期时,将在文本框上执行验证。我试着处理它,但它仍然出现了一秒钟。

这是代码

$(document).ready(function () {

    $("#date").datepicker({
        onSelect: function () {
            $("#span1").css("display", "none")
        }
    });
});

function check() {
    if ($("#date").val() == "") $("#span1").css("display", "inline-block");
}

为了更好地理解,jsFiddle link

编辑:最终解决方案:首先接受最接近答案。

$("#date").datepicker({
    onClose: function() {
        check();
    }
});

3 个答案:

答案 0 :(得分:1)

您可以在日期选择器关闭时调用check来代替输入框的模糊。

$("#date").datepicker({
    onSelect: function () {
        $("#span1").css("display", "none")
    },
    onClose: function() {
        check();
    }
});

答案 1 :(得分:0)

使用setTimeout

$(document).ready(function () {
    $("#date").datepicker({
        onSelect: function () {
            $("#span1").css("display", "none")
        }
    });
});


function check() {
    setTimeout(function(){
        if ($("#date").val() == "") 
            $("#span1").css("display", "inline-block")
            }, 100);
}

样本: http://jsfiddle.net/dirtyd77/4Vp9D/26/

答案 2 :(得分:-1)

我建议使用这个轻量级的插件,而不是发明自己的轮子? http://digitalbush.com/projects/masked-input-plugin/

它也可以很好地与jQuery UI DatePicker一起使用,这将使您不必在日期格式上进行自己的验证。