如何禁用数字输入datepicker?

时间:2017-01-05 09:07:00

标签: javascript jquery datepicker

我在这个问题上需要一些帮助。我只想在" Date1"中工作的退格键和箭头键。领域。我看到它一旦成为" datepicker"带有下面代码的字段,数字符号和" /"被允许。我可以禁用它,以便只有退格键和箭头键可以工作吗?不要让人们输入随机数字。



<script>
var dateToday = new Date();
$(function() {
    $( "#Date1" ).datepicker({
        numberOfMonths: 1,
        showButtonPanel: true,
        minDate: dateToday
    });
});
</script>

<script>
var o = document.getElementById('Date1');
o.addEventListener( 'keydown', function( e ) {

    if( e.keyCode >= 37 && e.keyCode <= 40 ) {
        return; 
    }
    if( e.keyCode === 8 || e.keyCode === 58 ) {
        return; 
    }
    e.preventDefault( );
}, false );
</script>
&#13;
<input type="text" id="Date1" name="Date1">
&#13;
&#13;
&#13;

现在,它按预期工作了。我无法使用键盘上的所有字母键

1 个答案:

答案 0 :(得分:0)

为什么不标记输入readonly="true"以禁用输入。

<input type="text" id="Date1" name="Date2" readonly="true">

这将达到目的。

更新

正如您所说,应该允许清除输入字段。请将您的听众更新为

o.addEventListener('keydown', function( e ) {    
   switch(e.keyCode){
       case (e.keyCode >= 37 && e.keyCode <= 40 ):
       case ( e.keyCode === 8 || e.keyCode === 58 ):
       case (e.keyCode >= 48 && e.keyCode <= 57);
           return;
       default:        
           console.log(e.keyCode); // do something for default
   }    
   e.preventDefault( );

},false);