jQuery Date Picker,其中文本输入是只读的

时间:2010-05-05 06:53:14

标签: jquery jquery-ui input datepicker readonly

我想使用Jquery datepicker。我已经使用alt字段选项进行了设置。我在文本字段中显示D / M / Y,但是提交了Y-M-D。到目前为止一切正常,发送正确的数据等。

但是我想阻止用户手动输入日期。我最初将INPUT字段设置为disabled,它在除IE之外的每个浏览器中都有效。在IE中,它会弹出日期选择器,但在点击日期后不会关闭。

有谁知道最好的方法吗?

4 个答案:

答案 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");