文本输入为只读的jQuery日期选择器

文本输入为只读的jQuery日期选择器,jquery,jquery-ui,input,datepicker,readonly,Jquery,Jquery Ui,Input,Datepicker,Readonly,我想使用Jquery日期选择器。我已经使用alt字段选项进行了设置。我在文本字段中显示D/m/Y,但提交Y-m-D。到目前为止,一切正常,发送正确的数据,等等 但是,我想阻止用户手动键入日期。我最初将输入字段设置为disabled,这在除IE之外的所有浏览器中都有效。在IE中,它会弹出日期选择器,但在单击日期后不会关闭 有人知道最好的方法吗?禁用输入字段后,使用销毁方法删除日期选择器。重新启用字段时,只需重新创建日期选择器 $("#target").datepicker("destroy");

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

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


有人知道最好的方法吗?

禁用输入字段后,使用销毁方法删除日期选择器。重新启用字段时,只需重新创建日期选择器

$("#target").datepicker("destroy");

为了防止用户手动编辑输入,我将附加一个keypress事件,并从其处理程序返回false/prevent default。 这样,如果他有javascript,他可以使用datepicker,如果没有,他可以手动编辑输入

$("#input-id").keypress(function (e)
{
    e.preventDefault();
});

扩展nc3b的答案:

$("#input-id").keydown(function (e)
{e.preventDefault();});
将阻止退格、删除等键。否则,您可能会有一个日期,如2012年11月11日,用户可以将其退格到2011年11月11日,从技术上讲,根据JS,这仍然是一个有效的日期。

您也可以这样做:

<input type="text" id="datepicker" name="datepicker" readonly="readonly" />

非常感谢。这是一个非常简洁的解决方案,它也很好地解决了Javascript的不足。如果您要这样做,禁用keydown也可能很有用,以防止退格、删除等。$(“#input id”).keydown(函数(e){e.preventDefault();});我发现按键无法防止退格,所以dah97765解决方案是最好的。按键也可以防止复制粘贴。至少对我有用。
$("#datepicker").datepicker({ showOn: 'both' });