如何禁用下拉选项小于一些值使用jquery
how to disable dropdown options less than some value using 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>
<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>
现在从ajax调用我得到一些年说2016年。现在我想禁用所有小于2016年的选项。我尝试如下:
$('select#from_year option:lt('+payment_date[1]+')').prop("disabled", true);
…其中payment_date[1] = 2016
,但无济于事。
我做错了什么吗?欢迎任何帮助/建议
您可以使用filter()
来实现这一点:
var year = 2016;
$('#from_year option').filter(function() {
return $(this).val() < year;
}).prop('disabled', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<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>
- Update -
注意filter()
函数的语法现在可以使用ES6箭头函数来简化:
$('#from_year option').filter((i, el) => el.value < year).prop('disabled', true);
Rory的回答很好(我为它投了赞成票:)),但这里有一个更像是你最初尝试的改编:
var $group = $("select#from_year");
var iTarget = $group.find("[value='" + payment_date[1] + "']").index();
$group.find(":lt(" + iTarget + ")").prop("disabled", true);
关键的区别在于,jQuery的:lt()
在它的选择器组中运行元素索引,而不是它的值。因此,您必须检索"2016"<option>
的索引,然后才能将其他索引与:lt()
进行比较。
注意:这也会禁用"选择年份"选项,这可能会也可能不会给你带来问题。
相关文章:
- Jquery setdate设置的日期小于实际选定日期的一
- Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
- 当屏幕大小小于480px时,如何禁用jQuery功能
- 如何使用jQuery检查日期不能小于当前日期
- jQuery:定位所有 val 小于 1 的元素
- JS或jQuery或窗口大小调整或窗口宽度小于npx时
- 值大于(小于)变量的 jQuery 过滤器选项
- jQuery UI如果移动的距离小于一定距离,则可拖动恢复到原始位置
- 如果数字小于零,而负数将其隐藏jquery
- jQuery/Javascript图像库如果悬停在X上则更改图像,但如果小于X则不更改图像
- Jquery或Javascript:如何查找图像大于500px且小于2000px的所有html元素
- JQuery:第一个tr的td小于X
- 如果视口宽度小于X,有没有办法阻止jQuery提交
- jQuery选择器,获取所有小于n个子元素的父元素
- jQuery nextUntil属性小于或等于value
- 鼠标滚轮事件总是返回小于0(向下)在firefox?JQuery
- 小于或等于jquery.validationEngine.js中的值
- 如何在javascript/jquery中转义小于符号
- 文本框值小于两个字母(数字)的值前加0使用jquery
- 使用小于&扩展属性选择器比jQuery更大