-4

我想要做的是允许用户在 aa 字段中仅输入 12 小时时间 am/pm。

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

任何帮助都将真正得到满足。谢谢

4

2 回答 2

1

演示

时间选择器

几个月前我做到了,这将对您有所帮助。

$('#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);
    }
});
于 2013-10-07T14:19:05.707 回答
1

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

  • 它是否包含 AM 或 PM(不区分大小写)
  • 它是否有 : ,如果有,则输入分钟数,如果没有,则假定它只是小时数。
  • 下午/上午之前只有数字吗?如果不是它是无效的。
  • 是否有任何数字大于 12 或小于 1?

一些有用的功能可能是。

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

Javascript 等价于 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 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

于 2013-10-07T14:28:46.043 回答