0

ユーザーが他の選択リストで選択したものを1つの選択リストから除外しようとしています。

これは2つの質問のリストであり、ユーザーは両方の選択リストで同じ質問を選択することはできません。

何らかの理由で、最初の2つの選択では機能しますが、2番目のボックスの値をそうでない値に変更し始めます。両方のいくつかの選択で正常に機能しますが、2つから選択し続けると、誤った結果が返され始めます

以下はjqueryコードですが、コードを完成させるためのFiddleへのリンクは次のとおりです。

var q1 = "#q1";
var q2 = "#q2";
var questions = {"1":"Question 1","2":"Question 2","3":"Question 3","4":"Question 4"}

function rebuildList(option,id) {
    var currentValue = $(id).val();
    $(id).empty();
    $(id).append($('<option></option>').val(0).html("Select"));

    $.each(questions, function (key, value) {
        if (key != option) {
            $(id).append($('<option></option>').val(key).html(value));
        }
    });

    //set the value back to what it was before emptying the list
    var setter;
    if (currentValue == "") {
        setter = id + " option:eq(0)";
    } else {
        setter = id + " option:eq(" + currentValue + ")";
    }


    $(setter).prop('selected', 'selected');
}



$(document).ready(function () {
    $(q1).change(function () {
        rebuildList($(this).val(), q2);  
        return false;
    });

    $(q2).change(function () {
        rebuildList($(this).val(), q1);  
        return false;
    });
});
4

1 に答える 1

0

を使用すると問題が発生しますeq()。その部分を変更すると、コードは正常に機能します。

if (currentValue == "") {
    $(id).val(0)
} else {
    $(id).val(currentValue)
}

こちらをチェックしてください、http://jsfiddle.net/muthkum/BsHHz/3/

于 2012-12-05T05:56:30.577 に答える