Jquery多选选项唯一性

时间:2016-12-19 16:05:16

标签: jquery

我有以下代码:

var choices = [];
var previousChoice;
$(document)
    .on('focus',
        ".ddlConfidence",
        function() {
            // Store the current value on focus
            previousChoice = this.value;
        });
$(document)
    .on("change",
        ".ddlConfidence",
        function () {
            if ($(this).val() === "0") {
                //Remove from array
                choices.splice(choices.indexOf(parseInt(previousChoice)), 1);
    //TODO: Add choice back to all drop downs
            } else {
                //Add chosen to array
                choices.push(parseInt($(this).val()));
    //TODO: Remove choice from all drop downs except this one
            }
        });

降价:

<select name="Picks[1].Confidence" class="form-control ddlConfidence">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="Picks[2].Confidence" class="form-control ddlConfidence">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

我有40个下拉,每个都有0-40个选项。如果用户选择大于0的数字,我将其添加到数组中,如果他们选择0,我将其从数组中删除。如何从所有下拉菜单中删除或添加所选数字,以便在完成时,他们必须为所有下拉菜单选择1-40(防止他们通过添加/删除选择相同的数字两次它来自所有其他下降。

谢谢!

1 个答案:

答案 0 :(得分:0)

不是最优雅的解决方案,但它确实有效。当我需要在选项中添加时,我添加选项然后重新排序选项列表:

8