我在禁用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/
答案 0 :(得分:1)
$(function(){
var n=parseInt($("#cur-hour").html());
$("#time_to_hour option").each(function(){
if(parseInt($(this).val()) < n ) {
$(this).prop('disabled', true);
}
});
});
答案 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/
中的工作示例