jquery - 当属性大于输入值时选择一个选项 - Jquery
问题描述
我有一个输入和一个选择选项使用 select2 :
<input type="number" id ="area"/>
<select id ="demo">
<option data-area = "100">100 area</option>
<option data-area = "150">150 area</option>
<option data-area = "200">200 area</option>
<option data-area = "230">230 area</option>
</select>
var area = $('#area').val();
if (area) {
$('select#demo').filter(function() {
if ($(this).attr('data-area') > compare) {
alert(1);
} else {
alert(2);
}
});
}
当用户输入数字时(例如:130),预期结果:自动选择此选项
<option data-area = "150">150 area</option>
这是一个演示http://jsfiddle.net/1fh4jmsy/6/但它不起作用。
解决方案
为此,您需要挂钩到input
文本框的事件,以便您可以在用户键入时更新选择。然后,您可以使用filter()
查找大于提供值的option
元素,然后使用选择其中的第一个:data-area
prop()
$('#area').on('input', function() {
var val = $(this).val();
$('#demo option').filter(function() {
return $(this).data('area') >= parseInt(val, 10);
}).first().prop('selected', true);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" id="area" />
<select id="demo">
<option data-area="100">100 area</option>
<option data-area="150">150 area</option>
<option data-area="200">200 area</option>
<option data-area="230">230 area</option>
</select>
请注意,此逻辑假定option
值始终按升序排列。
推荐阅读
- reactjs - 如何反转蚂蚁设计滑块?固定最大值
- python - 在 django 中加载具有 ImageField 模型的数据
- django - 在 s3 上上传的静态文件不会在本地显示
- c# - 从定义了宽度和高度的代码中拉伸网格
- angular - ngbDatepicker 设置值
- python - 在 Google colab 中从 github 读取 .mat 文件
- c++ - MSVC 声称公共成员不可访问
- java - 未调用模拟方法
- html - 如何在 CSS 中创建一个超出父级限制但不调整父级 div 大小的 div?
- c++ - 在 Windows 中编译 mongo-cxx-driver 时遇到问题