使用javascript动态更改select中的最大值
Dynamic change max values in select with javascript
我有两个这样的选择:
<select id='select1'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
<select id='select2'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
<select id='select3'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
在这个例子中,5是一个最大值,所以如果我在select1中选择值2,我希望我的select2和select3具有最大值:5-2=3以获得最终输出:
<select id='select2'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>
<select id='select3'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>
当然,无论我选择什么项目,行为都应该是一样的。
试试这个-
$( document ).ready(function() {
$("#select1").change(function(){
$("#select2 option, #select3 option").show();
var maxValue = 5 - $(this).val();
for (var i = 5; i > maxValue; i--)
{
$("#select2 option[value='"+i+"'], #select3 option[value='"+i+"']").hide();
}
});
});
演示-http://jsfiddle.net/9DAE4/3/
var sel = $('#select2,#select3');
$('#select1').change(function () {
var val = this.value; //get value
sel.val('1').find('option').show(); //set value 1 to select 2,3 and show all options
sel.find('option[value="' + val + '"]').nextAll('option').hide(); //hide nextAll values next to max value
});
小提琴演示
参考
.change()
.nextAll()
.val()
.find()
属性等于选择器
更新的小提琴演示
var sel = $('#select2,#select3');
$('#select1').change(function () {
var val = 5 - this.value;
sel.val('1').find('option').show();
if (val === 0) {
sel.find('option').hide();
} else {
sel.find('option[value="' + val + '"]').nextAll('option').hide();
}
});
在这种情况下,您必须在选择第一个选择框时使用onChange事件。此事件将调用一个javascript方法,该方法将动态创建/修改其他选择框。
相关文章:
- 在Javascript数组中查找绝对最大值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 按最大值获取数组索引
- 识别滑块范围的最小值和最大值
- 如何在最大值之前的某个点停止范围滑块
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- 如何在拖动后获得图表的最小值和最大值放大高图表
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- HTML5范围滑块最小值和最大值
- 如何仅在存在最小值和最大值时才显示错误消息
- 在 JavaScript 事件中添加最小值和最大值
- 从 JavaScript 中的数组中获取最大值和最小值
- 获取整数对象属性名称的最小值和最大值
- 高图表 - 在缩放重置中设置最大值和最小值
- Java 脚本 设置日期的最小值和最大值属性
- 使用javascript动态更改select中的最大值
- 如何设置jQuery微调器的最大值和最小值
- 当达到最小值和最大值时,防止在输入中显示额外的文本
- 使用函数从数组中查找最小值和最大值
- JS:给定一个x,y坐标列表,可以找到介于1,1和给定最大值之间的缺失坐标