0

我想知道我是否可以得到一些关于如何在 jquery 中实现这一点的想法:

主意

假设第一个选项使用上午 9 点到 11 点的时间范围,我需要 jquery 来检查实际时间,如果它大于上午 11 点,则将disabled属性添加到该选项。

当一天结束时,所有选项都必须重置,这意味着 12 点。

形式

<select class="select" id="newfield3" name="newfield3">
<option disabled value="9:00 a 11:00 A.M">9:00 a 11:00 A.M</option>
<option value="11:00 a 1:00 P.M">11:00 a 1:00 P.M</option>
<option value="2:00 a 4:00 P.M">2:00 a 4:00 P.M</option>
<option value="4:00 a 6:00 P.M">4:00 a 6:00 P.M</option>
</select>

我是 jquery 的初学者,所以我非常感谢我得到的任何帮助。

4

2 回答 2

4

你可以尝试使用

var d = new Date();
var n = d.getHours();

并根据 n 的值,禁用您的option

于 2013-05-28T17:59:57.197 回答
0

所以这就是我要找的:

$("#newfield3 option").each(function() {
var $thisOption = $(this);
var HH = new Date().getHours();
var h1 = "9:00 a 11:00 A.M";
var h2 = "11:00 a 1:00 P.M";
var h3 = "2:00 a 4:00 P.M";
var h4 = "4:00 a 6:00 P.M";

if (HH >= 9 && HH < 17) {

if($thisOption.val() == h1) {

    if ( HH >= 10 ) {
            $thisOption.prop('disabled', true);
            $('#newfield3 option[value="' + h2 + '"]').attr("selected", "selected");
    }

}   
if($thisOption.val() == h2) {

    if ( HH >= 12 ) {
            $thisOption.prop('disabled', true);
            $('#newfield3 option[value="' + h3 + '"]').attr("selected", "selected");
            $('#newfield3 option[value="' + h2 + '"]').attr("selected", false);
    }

}   
if($thisOption.val() == h3) {

    if ( HH >= 15 ) {
            $thisOption.prop('disabled', true);
            $('#newfield3 option[value="' + h4 + '"]').attr("selected", "selected");
            $('#newfield3 option[value="' + h3 + '"]').attr("selected", false);
    }

}
if($thisOption.val() == h4) {

    if ( HH >= 17 ) {
            $thisOption.prop('disabled', true);
    }

}

}

});
于 2013-05-28T20:58:50.763 回答