Javascript 3个下拉列表通过jQuery将总数限制为8
我有3个下拉列表,每个下拉列表有8个选项。现在我的目标是将这3个下拉列表的组合值限制为8。例如,如果你在第一个选择7,你只能在接下来的两个选择1,如果你在第二个选择1,你就不能在第三个选择任何东西 我试图通过禁用某些选项来实现我的目标,但我的逻辑有一个缺陷。一旦我选择了一个选项,我就无法更改我选择的选项,因为我已禁用这些选项。有人知道我如何解决这个问题吗 提前谢谢 下面是一个JSFIDLE作为我的代码示例: 我的jQuery代码:Javascript 3个下拉列表通过jQuery将总数限制为8,javascript,jquery,html,Javascript,Jquery,Html,我有3个下拉列表,每个下拉列表有8个选项。现在我的目标是将这3个下拉列表的组合值限制为8。例如,如果你在第一个选择7,你只能在接下来的两个选择1,如果你在第二个选择1,你就不能在第三个选择任何东西 我试图通过禁用某些选项来实现我的目标,但我的逻辑有一个缺陷。一旦我选择了一个选项,我就无法更改我选择的选项,因为我已禁用这些选项。有人知道我如何解决这个问题吗 提前谢谢 下面是一个JSFIDLE作为我的代码示例: 我的jQuery代码: $(".options select").change(fun
$(".options select").change(function() {
var value1 = $("#input_1_5").val();
var value2 = $("#input_1_6").val();
var value3 = $("#input_1_7").val();
var sum = parseInt(value1) + parseInt(value2) + parseInt(value3);
var rest = 9-sum;
$("#input_1_6 > option").slice(rest,9).each(function() {
$(this).attr("disabled", true);
});
var rest2 = rest - 9
$("#input_1_7 > option").slice(rest2,9).each(function() {
$(this).attr("disabled", true);
});
});
您需要进行变量检查,以查看要启用的项目
var$selects=$(“.options select”).change(函数(){
var总和=0;
$selects.each(函数(){
总和+=+此值;
});
var-rem=9-和;
$selects.each(函数(){
var max=+this.value+rem;
$(this).find('option').prop('disabled',function(){
return+this.value>max;
});
});
});代码>
0
1.
2.
3.
4.
5.
6.
7.
8.
0
1.
2.
3.
4.
5.
6.
7.
8.
0
1.
2.
3.
4.
5.
6.
7.
8.
在您的代码中,您必须从循环中获取ele,它将工作
$(".options select").change(function() {
var value1 = $("#input_1_5").val();
var value2 = $("#input_1_6").val();
var value3 = $("#input_1_7").val();
var sum = parseInt(value1) + parseInt(value2) + parseInt(value3);
var rest = 9-sum;
$("#input_1_6 > option").slice(rest,9).each(function(index, ele) {
$(ele).attr("disabled", true);
});
var rest2 = rest - 9
$("#input_1_7 > option").slice(rest2,9).each(function(index, ele) {
$(ele).attr("disabled", true);
});
});
这比我的答案要好得多:-)很抱歉,您的代码片段似乎不正确working@FrankLucas忘记包含jQuery:(啊,好的,np,非常感谢您的输入!我理解您的逻辑,再次感谢!@ArunPJohny还有一件事,在这个例子中,您使用选项的值,是否可以使用.txt而不是.val实现相同的效果?