jQuery - 禁用select选项取决于另一个div字段的值

时间:2013-12-09 09:22:05

标签: javascript jquery

我在禁用option字段中的某些值时遇到问题。我尝试禁用所有来自另一个div字段的值小于的值。我的代码如下所示:

<div id="cur-hour">09</div>

<select id="time_to_hour" class="select">
    <option value="">---</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
</select>

我有这个js代码:

$(function(){
    if($("#time_from_hour > option").val() < $("#cur-hour").val()) {   
            $('#time_from_hour > option').prop('disabled', true);
        }
});

但它不起作用 - 这里是jsfiddle:http://jsfiddle.net/qhPp7/36/

4 个答案:

答案 0 :(得分:1)

$(function(){
var n=parseInt($("#cur-hour").html());    
$("#time_to_hour option").each(function(){
    if(parseInt($(this).val()) < n ) {
        $(this).prop('disabled', true);
    }
});

});

http://jsfiddle.net/qhPp7/38/

答案 1 :(得分:0)

由于value option标记为 string.

,因此您的情况无效

同样val()不会用于divs,因此请使用.html().text()

还必须将其解析为整数

答案 2 :(得分:0)

试试这个

$(function(){
var options = document.getElementById('time_to_hour').options;
var chk = document.getElementById('cur-hour').innerHTML;


for(var o=0;o< options.length;o++)
{
        var va = parseInt(options[o].value);
    if(va!="" && va<chk)
    {
        alert(va);
        options[o].disabled=true;
    }   
}

});

答案 3 :(得分:0)

请使用span来存储更容易找到的值。

    09

$(函数(){

$('#time_to_hour option')。each(function(){

    if (parseInt($("#index").text()) > parseInt($(this).text())) {
        this.disabled = true;
    }
}); 

});

我希望上面的代码可以为您解决... 以下是您的小提琴http://jsfiddle.net/qhPp7/35/

中的工作示例