带输入类型文本的日期输入字段DD / MM / YYYY

时间:2016-09-04 09:23:49

标签: jquery html css

我正在尝试进行日期输入,但不使用HTML5的日期格式选项。

所以我要说我的输入是

<input type="text" id="dateField" />

仅允许使用字符编号和“/

有没有办法让这个字段只接受数字和'/'(不使用输入type="date"

更新目的不是使用HTML5。

5 个答案:

答案 0 :(得分:3)

您可以测试此代码

for (int j = 15; j >= 0; j--)

答案 1 :(得分:1)

您可以将HTML5 input pattern attribute与正则表达式一起使用:

<input type="text" id="dateField" pattern="[\d/]"/>

答案 2 :(得分:0)

您可以使用IE 11 +

中支持的输入模式
<input type="text" pattern="\d{2}\/\d{2}\/\d{4}" />

如果仍然不是一个选项,你应该寻找一个javascript解决方案挂钩改变字段的值

var pattern = /\d{2}\/\d{2}\/\d{4}/;
document.querySelector("input").addEventListener("keyup", function(ev){
  var value = ev.target.value;
  if(!pattern.test(value){
    //value of the field is not the one you are looking for
    // handle this
  }
})

答案 3 :(得分:0)

您可以尝试这样的操作来限制输入字段中允许的字符。你需要深入挖掘一下来限制实际的格式。

$('#date').on('input', function() {
  this.value = this.value.replace(/[^0-9/]/g, '');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="date" maxlength="10" />

您可能还想考虑使用datepicker插件(例如jQuery UI Datepicker或类似)

答案 4 :(得分:0)

试试这个:

<input name="number" onkeyup="if (/[^\d/]/g.test(this.value)) this.value = this.value.replace(/[^\d/]/g,'')">