2013-04-04 74 views
2

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

这里是代码

$(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(); 
    } 
}); 

回答

1

而不是模糊的输入框,你也可以打电话检查datepicker关闭时。

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

你请从输入框的onblur的? 对我来说很好用http://jsfiddle.net/4Vp9D/24/ chrome和ie9 – gary 2013-04-04 21:44:44

+0

@ user1390378 - 人们会查看低级别信誉的用户所做的修改。两个人拒绝了这个编辑 - 我会基于你的OP接受这个编辑 - 但是你应该怎么做,如果这能解决你的问题,就是为这个答案添加一个评论,接受这个答案并且将编辑后的代码放入并编辑评论在你的问题。 – 2013-04-04 22:16:06

+0

@Mark Schultheiss:谢谢你的解释。你能告诉我为什么这两个人拒绝了吗?由于我的编辑只是为了改善答案。 – user1390378 2013-04-04 22:21:33

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

DEMO: http://jsfiddle.net/dirtyd77/4Vp9D/26/

+0

对不起亲爱的同样的问题了。 – user1390378 2013-04-04 21:56:45