我还在学习jQuery,但我认为这可能很简单:
我有2个下拉框,其名称和ID为:topnumber
,bottomnumber
两个列表都包含数字1-5。
我想要做的是使用jQuery来禁用或删除bottomnumber
任何数字,而不是他们在顶部数字中选择的数字(等于OK)。例如,如果他们在topnumber
中选择3,则会从bottomnumber
列表中删除或禁用4和5。
感谢任何帮助。谢谢! 克里斯
答案 0 :(得分:2)
试试这个
正在使用 demo
$(function(){
$('#topnumber').change(function() {
var topValue = parseInt(this.value);
$('#bottomnumber option').attr("disabled", false).filter(function(){
//This will make sure to select only options with value > topValue
return (topValue < parseInt(this.value));
}).attr("disabled", true);
});
});
答案 1 :(得分:1)
$('#topNumber').change(function() {
var num = $(this).val();
$('#bottomNumber option').removeAttr('disabled').filter(function() {
return Number($(this).attr('value')) >= num;
}).attr('disabled', 'disabled');
});
此代码使用filter()
将匹配的选项集减少到大于val
的选项,然后禁用匹配集中的所有选项。
答案 2 :(得分:0)
您需要绑定到每个下拉列表的更改事件,并根据用户输入的内容更改另一个的值。
为此,请使用jQuery的。change,例如
$("#bottomnumber").change(function() {
$(this).val() - this will be the selected value
$("#topnumber")...do stuff to the top number one
});
反之亦然。
希望这有助于...而不是完整的代码,但应该让你朝着正确的方向前进。
答案 3 :(得分:0)
Here是一个实例。
$(document).ready(function(){
buildBottomOptions();
});
$('#top').change(function() {
buildBottomOptions();
});
function buildBottomOptions() {
var value = $('#top').val();
var options = '';
for (i = 1; i <= value; i++)
options += '<option value="' + i + '">' + i + '</option>';
$('#bottom').find('option').remove().end().append(options);
}
答案 4 :(得分:0)
使用:gt selector可以让您轻松完成此操作。 Working example
$("#topnumber").change(function(e) {
// turn the value of #topnumber in a javascript integer
var num = parseInt($(this).val());
// :gt is zero-indexed, which means that :gt(0) will get 2,3,4,5
// and 1 would get 3,4,5 etc, etc.., so subtract one.
num = num - 1
// reset the list so that everything is active.
$("#bottomnumber option").removeAttr('disabled');
// disable the ones which are higher than topnumber's value
$("#bottomnumber option:gt("+num+")").attr('disabled', 'disabled');
});
答案 5 :(得分:0)
$(document).ready(function () {
$('select[id="topnumber"]').change(function () {
var maxValue = parseInt($('select[id="topnumber"]').attr('value'));
$(' select[id="bottomnumber"] option').attr('disabled', false).filter(function() {
return parseInt($(this).attr('value')) > maxValue ;
}).attr('disabled', true);
});
});
请参阅此处的示例:http://jsfiddle.net/XLUju/