如何限制用户只能输入12小时时间,AM和PM

时间:2013-10-07 14:13:37

标签: javascript jquery

我想要做的是允许用户只在一个字段中输入12小时/ am / pm。

额外:任何方式我可以“从 - 到”验证2个字段,例如:如果用户在字段中输入下午1点,则字段调用将仅允许从下午1点开始转发。

任何帮助都将是真正的帮助。感谢

2 个答案:

答案 0 :(得分:1)

DEMO

timepicker

几个月前我做了这件事,这对你有帮助。

$('#time2').attr('disabled', true);
$("#time").timepicker({
    timeOnly: true,
    timeFormat: 'hh:mm tt'
}).change(function () {
    var val = this.value;
    if (val !== '') {
        var min = val.split(':');
        var min1 = min[1].split(' ');
        var minMin = parseInt(min1[0]);
        var minHour = ((min1[1] == 'am') ? parseInt(min[0]) : parseInt(min[0]) + 12);
        $('#time2').removeAttr('disabled').removeClass('hasDatepicker').timepicker({
            timeOnly: true,
            timeFormat: 'hh:mm tt',
            hourMin: minHour,
        }).change(function () {
            var val_to = this.value;
            var min_to = val_to.split(':');
            var min1_to = min_to[1].split(' ');
            var minMin_to = parseInt(min1_to[0]);
            var minHour_to = ((min1_to[1] == 'am') ? parseInt(min_to[0]) : parseInt(min_to[0]) + 12);
            if(minHour_to == minHour && minMin_to <= minMin){
                this.value = val;
            }
        });
    } else {
        $('#time2').attr('disabled', true);
    }
});

答案 1 :(得分:1)

您只需要一些代码来解析字符串并找到问题。像这样的逻辑

  • 是否包含AM或PM(不区分大小写)
  • 它是否有:如果确实如此,则拉出会议记录,如果没有,那么只需要几小时。
  • PM / AM之前只有数字吗?如果不是它无效。
  • 是大于12或小于1的任何数字

可能会有一些有用的功能。

"string split".split(" "); // split into an array by spaces

Javascript Equivalent to PHP Explode()

"find the PM".indexOf('PM'); // return turns how many characters 
                             //away the PM is from the left. 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

以及slice()

 "slice after PM".slice(6); //this will slice from the beginning to the 6th character. 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf