我在文本框上使用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();
}
});
答案 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);
}
答案 2 :(得分:-1)
我建议使用这个轻量级的插件,而不是发明自己的轮子? http://digitalbush.com/projects/masked-input-plugin/
它也可以很好地与jQuery UI DatePicker一起使用,这将使您不必在日期格式上进行自己的验证。