我有一个输入字段:
<input id="count" name="count" min="1" value="1" type="number" />
和一个选择框:
<select id="select">
<option>nothing selected</option>
<option data-number="4">four (4)</option>
<option data-number="5">five (5)</option>
<option data-number="6">six (6)</option>
</select>
我想实现以下目标:
如果#count
的输入值高于data-number
的{{1}},则禁用此选项(例如:如果#select
的输入值高于{{} 1}}然后使用#count
禁用该选项。
我也希望自动选择"5"
的选项,其中data-number="5"
的值最合适(例如:输入值#select
会自动选择#count
的opiton },对于输入值"3"
选择带有data-number "4"
的opiton,输入值"4"
选择带有data-number "4"
的opiton)
这就是我试图解决的问题,但它并没有起作用:
"5"
答案 0 :(得分:2)
检查以下代码和link
{{1}}
答案 1 :(得分:1)
我希望以下代码可以帮助您。
$(function() {
$("#count").change(function() {
var countValue = parseInt($("#count").val());
$("#select option").each(function() {
var numberOption = parseInt($(this).attr("data-number"));
if (!isNaN(numberOption) && !isNaN(countValue) && countValue > numberOption)
$(this).hide();
else if (!isNaN(numberOption) && !isNaN(countValue))
{
$(this).show();
}
if (!isNaN(numberOption) && !isNaN(countValue) && countValue == numberOption)
$(this).attr("selected",true);
});
});
});
答案 2 :(得分:1)
试一试:
$('input').change(function () {
var that = parseInt($(this).val(), 10);
$('#select option:gt(0)').each(function () {
$(this).prop('disabled', ($(this).data('number') < that)).prop('selected', ($(this).data('number') >= that && $(this).prev().data('number') < that));
})
if (that <= $('#select option:eq(1)').data('number')) $('#select option:eq(1)').prop('selected', true);
}).change()
<强> jsFiddle example 强>