我想使用Jquery datepicker。我已经使用alt字段选项进行了设置。我在文本字段中显示D / M / Y,但是提交了Y-M-D。到目前为止一切正常,发送正确的数据等。
但是我想阻止用户手动输入日期。我最初将INPUT字段设置为disabled,它在除IE之外的每个浏览器中都有效。在IE中,它会弹出日期选择器,但在点击日期后不会关闭。
有谁知道最好的方法吗?
答案 0 :(得分:8)
为防止用户手动编辑输入,我会附加一个按键事件并从其处理程序返回false / prevent default。 这样,如果他有javascript,他可以使用datepicker,如果没有,他可以手动编辑输入。
$("#input-id").keypress(function (e)
{
e.preventDefault();
});
答案 1 :(得分:3)
扩展nc3b的回答:
$("#input-id").keydown(function (e)
{e.preventDefault();});
会阻止退格,删除等密钥。否则,您可能会有一个类似11/11/2012的日期,并且用户可以将其退回到11/11/201,从技术上讲,这仍然是一个有效的日期,根据JS。
答案 2 :(得分:1)
你也可以这样做:
<input type="text" id="datepicker" name="datepicker" readonly="readonly" />
请参阅上面的readonly
属性。
如果您还希望在<input>
有焦点时显示日历,请添加以下内容:
$("#datepicker").datepicker({ showOn: 'both' });
答案 3 :(得分:0)
禁用输入字段后,使用destroy方法删除datepicker。重新启用该字段时,只需重新创建日期选择器。
$("#target").datepicker("destroy");