如何使用jquery在selectbox中禁用或选择特定值?

时间:2015-08-12 13:38:12

标签: jquery

我有一个输入字段:

<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"

这是小提琴:https://jsfiddle.net/dh1ak18t/

3 个答案:

答案 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