通过Javascript到特定日期格式的有限输入

时间:2015-01-26 23:48:21

标签: javascript jquery

嗨我有一个只允许数字和斜线的功能,但我的问题是它不是让我输入我想要的数字小键盘中的任何数字吗?

这里的任何人都可以帮忙:

function CheckDate(){



document.getElementById('txtbox').onkeydown = function(evt) {
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 191)
    return false;

    return true;

    }

}

还是有更好的方法可以做到这一点..我需要它去DD/MM/YYYY所以允许斜线和数字+数字键盘。

4 个答案:

答案 0 :(得分:0)

试试这段代码:

&#13;
&#13;
function handleInputKey(e)
{
    if (!e)
    {
        var e = window.event;
    }

    //allow only numeric input
    //48-57 and 96-105 (keyboard left and numpad)
    if ( ((e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode == 47) && (!e.shiftKey && !e.altKey && !e.ctrlKey) ))
    {

        return true;
    }
    else
    {
        e.preventDefault();
        return false;

    }


}

 document.getElementById('txtbox').addEventListener("keypress", handleInputKey, false);
&#13;
Please input date in DD/MM/YYYY format.<br />
<input id="txtbox" maxlength="10" placeholder="example: 01/01/1970"> 
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您希望用户输入日期,请​​使用:

&#13;
&#13;
<input type="date" />
&#13;
&#13;
&#13;

支持浏览器将为用户提供日历,方便用户选择。

在服务器端,您将收到标准YYYY-MM-DD格式的日期。

答案 2 :(得分:0)

找到了我的答案..还有charCode为numpads没有看到它

http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

WOOP。

答案 3 :(得分:0)

尝试使用此示例作为使用blur事件和RegExp

的工作

&#13;
&#13;
var txtbox = document.getElementById('txtbox');

var mask = 'DD/MM/YYYY';

txtbox.value = mask;

txtbox.onfocus = function(e) {
  if (mask === txtbox.value) { //put mask when no value is entered
    txtbox.value = '';
  }
};

var ptrn = /([0-3][0-9]\/)([0|1][1-9]\/)\d{4}/;//RegExp date pattern dd/mm/yyyy

txtbox.onblur = function(e) {
  var val = txtbox.value;
  var valid = true;
  if (val && !ptrn.test(val)) {//no value or does not matches pattern
    valid = false;
  }
  if(valid) {//date was entered in required pattern
    val = val.replace(ptrn, '$2$1$3');//making string in mm/dd/yyyy as required by date constructor
    if(!new Date(val)) {//not a valid date object
      valid = false;
    }
  }
  if(!valid) {
    alert('Invalid date !');
    val = '';
  }
  if ('' === val) { //put mask when no value
    txtbox.value = mask;
  }
};
&#13;
<input type='text' id='txtbox' maxlength='10' />
&#13;
&#13;
&#13;