2010-09-28 205 views
1

我有一个日期选择器,但我尝试手动输入用户i-e九月有30天我怎样才能阻止从用户手动输入第31日期?jquery日期验证

回答

3

当用户键入内容时,您不应妨碍。

您应该这样做:让用户输入任何值,验证它(这将失败),将该字段设为红色,在窗体上添加错误消息(“日期无效”),将焦点设置在该字段上。

将点击处理程序添加到提交按钮,并确保所有字段都有效。如果不是,则中止提交(return false;)。否则return true;提交表格。

+0

我很想知道为什么你认为这不能完成。 – 2010-09-28 08:54:59

+0

改进措辞使我的观点更加清晰。 – 2010-09-28 09:08:29

+0

这可能是一个很好的方法,在这种情况下,某些浏览器可能会导致呈现特定的日期选择器出现问题,因此您必须手动恢复为用户输入日期。 – 2010-09-28 11:03:17

0

jQuery UI有一个DatePicker与所有这些包括在内。

为什么不尝试一下,如果可能的话?

+0

是东西可能像日这个 “有效数量” ??? – Shaun 2010-09-28 09:43:16

0

您需要捕获keyup事件并阻止用户输入无效日期,这将需要您处理用户输入的内容,并且相当困难,或者您可以通过使用event.preventDefault()来防止键盘输入任何内容。 ;所以用户将只能从datepicker中选择日期。

$("#mydatefield").keyup(function(e){ 
    e.preventDefault(); 
}); 
0

陷阱的keydown事件(KEYUP没有工作对我来说):

$("#MyDate").keydown(function (e) {   
    e.preventDefault(); 
});