【问题标题】:How do I make a textbox that only accepts time(hh:mm)?如何制作一个只接受时间(hh:mm)的文本框?
【发布时间】:2018-10-30 05:19:26
【问题描述】:

我在 asp .net 页面中有一个文本框。 我为文本框编写的 javascript/jquery 只接受时间(hh:mm 格式)

我对使用 Mask 验证器不感兴趣

任何帮助表示赞赏

【问题讨论】:

  • 请出示您目前尝试过的代码并说明您遇到问题的地方。
  • @Lance 我在 javascript 中很天真,在这里我正在寻找类似的功能,如 maskvalidator

标签: javascript jquery asp.net


【解决方案1】:

也许使用只允许格式为“01:01:2013”​​的值的正则表达式。 我对 regExps 并不感到不可思议,但类似的东西可以解决问题......

var date_check = /[0-9]+ : ([0-9]) + : +[0-9]/;

if(yourtextboxname.value.match(date_check)) 
{
   // whatever you want it to do now...
    return true;
}
else {

    alert("Invalid date");
    return false;
}

【讨论】:

  • 你可能想要更类似于:var date_check = /^[0-9]{1,2}:[0-9]{1,2}$/ 因为张贴者只想要小时和分钟(根据帖子)。想要{1,2} 而不是+ 因为+123:432 这样的值会通过。还有行尾和行首标记,以便仅匹配该文本(尽管不完全了解javascript匹配函数的行为,这可能没有必要?)
  • 啊,我明白了。谢谢,这很有帮助!就像我说的我不是专家!谢谢你的提示!
【解决方案2】:

在我的脑海中出现了这个问题,不确定这是否是您正在寻找的:

<input type="datetime-local" name="bdaytime">

html5 支持它,我觉得它非常有用,只是它的参数太多。

【讨论】:

  • 虽然caniuse.com/#feat=input-datetime,但在浏览器中对它的支持不多
  • 对不起,我忘了世界上还有其他地方在使用非 Chrome 浏览器... :P @ᾠῗᵲᄐᶌ
【解决方案3】:

这是 HTML 上下文:

<input type="text" id="field-time" name="timeInput" class="small form-control input-md ng-valid ng-dirty" ng-model="time" placeholder="HH:MM" ng-keypress="validateTimeSlot(time)"/> 

这是 JS Angular 函数:

$scope.validateTimeSlot=function (time) {
  var timeSlot = $scope.time;
  var validTimeFormat =  /^(2[0-3]|[01]?[0-9]):([0-5]?[0-9])$/;
  if(timeSlot == time && angular.isDefined(timeSlot) && !timeSlot.match(validTimeFormat)){
  $scope.error = "Please Enter ' Time' in HH:MM format ";
}

【讨论】:

    【解决方案4】:

    我用jQuery的插件timepicker:http://trentrichardson.com/examples/timepicker/

    【讨论】:

      【解决方案5】:

      有一个屏蔽输入 JQuery 插件可以处理屏蔽。见http://digitalbush.com/projects/masked-input-plugin/

      $("#YourTextBox").mask("99:99");

      被屏蔽的只会验证数字输入。您仍然需要 javascript 代码通过检查 hh 和 mm 是否介于 00 和 60 之间来验证数字

      【讨论】:

        【解决方案6】:

        你可能想看看这个

        http://digitalbush.com/projects/masked-input-plugin/

        或者您需要自己构建它,请参阅: https://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values/

        你必须添加:tough 和文本长度修复/数字验证 - 我希望你明白了

        问候一月

        【讨论】:

          猜你喜欢
          • 2010-10-02
          • 2014-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-28
          相关资源
          最近更新 更多