我在禁用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/
$(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/
您的条件不起作用,因为option
标签的value
是string.
此外,val()
不用于divs
,因此使用.html()
或.text()
此外,它必须解析为整数
尝试这个
$(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;
}
}
});
请使用span存储值,这样更容易找到它。
09$(function(){
$('#time_to_hour option').each(function(){
if (parseInt($("#index").text()) > parseInt($(this).text())) {
this.disabled = true;
}
});
});
我希望上面的代码能为你工作。。。这是你小提琴的工作例子http://jsfiddle.net/qhPp7/35/