Javascript 如何使用jquery禁用小于某个值的下拉选项

Javascript 如何使用jquery禁用小于某个值的下拉选项,javascript,jquery,Javascript,Jquery,下面我有一年的下拉列表 <select name="from_year" class="col-md-4 form-control" id="from_year"> <option value="0">Select Year</option> <option value="2010">2010</option> <option value="2011">2011</option>

下面我有一年的下拉列表

<select name="from_year" class="col-md-4 form-control" id="from_year">
    <option value="0">Select Year</option>
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option selected="selected" value="2015">2015</option>
    <option value="2016">2016</option>
    <option value="2017">2017</option>
    <option value="2018">2018</option>
    <option value="2019">2019</option>
    <option value="2020">2020</option>
</select>
。其中
付款日期[1]=2016
,但无效

我做错什么了吗。欢迎提供任何帮助/建议。

您可以使用
filter()
来实现这一点:

var year = 2016; // from AJAX...
$('#from_year option').filter(function() {
    return $(this).val() < year;
}).prop('disabled', true);
var年份=2016年;//来自AJAX。。。
$(“#来自_年选项”).filter(函数(){
返回$(this).val()<年;
}).prop('disabled',true);
罗里的答案很好(我投了赞成票:),但这里有一个更符合你最初尝试的答案:

var $group = $("select#from_year");
var iTarget = $group.find("[value='" + payment_date[1] + "']").index();
$group.find(":lt(" + iTarget + ")").prop("disabled", true);
关键的区别在于jQuery的
:lt()
在其选择器组中使用元素索引,而不是其值。因此,您必须先检索“2016”的索引,然后才能将其他索引与
:lt()
进行比较

注意:这也会禁用“选择年份”选项,该选项可能会或可能不会导致您出现问题

var $group = $("select#from_year");
var iTarget = $group.find("[value='" + payment_date[1] + "']").index();
$group.find(":lt(" + iTarget + ")").prop("disabled", true);