带有日期输入的jQuery Datepicker,不允许用户输入
时间:2020-03-06 14:55:52 来源:igfitidea点击:
如何将jQuery Datepicker与文本框输入配合使用:
$("#my_txtbox").datepicker({ // options });
不允许用户在文本框中输入随机文本。
我希望当文本框获得焦点或者用户单击它时弹出Datepicker,但我希望文本框忽略使用键盘的任何用户输入(复制和粘贴或者任何其他操作)。我想专门从Datepicker日历中填充文本框。
这可能吗?
jQuery 1.2.6
日期选择器1.5.2
解决方案
我们应该能够在文本输入上使用readonly属性,并且jQuery仍将能够编辑其内容。
<input type='text' id='foo' readonly='true'>
要使选择器弹出以获取焦点,请执行以下操作:
$(".selector").datepicker({ showOn: 'both' })
如果我们不希望用户输入,请将其添加到输入字段
<input type="text" name="date" readonly="readonly" />
尝试
$("#my_txtbox").keypress(function(event) {event.preventDefault();});
这种演示方式是通过将日历放在文本字段上来完成的,因此我们无法键入它。当然,我们也可以将输入字段设置为仅读取HTML。
<input type="text" readonly="true" />
我发现至少对我而言,jQuery Calendar插件通常在选择日期时效果更好。
如果要在多个地方重用日期选择器,那么也很容易通过JavaScript使用类似以下方法来修改文本框:
$("#my_txtbox").attr( 'readOnly' , 'true' );
在初始化日期选择器之后/之前。
<input type="text" readonly="true" />
使文本框在回发后丢失其值。
我们应该使用Brad8118的建议,该建议效果很好。
$("#my_txtbox").keypress(function(event) {event.preventDefault();});
编辑:
要使其适用于IE,请使用" keydown"而不是" keypress"