2012-12-05 224 views
0

我想從什麼用戶在其他選擇列表中選擇了一個選擇列表中排除的值。排除一個選擇框的值基於其他選擇框

這是2個問題的清單,並在這兩個選擇列表

出於某種原因,它爲第一對夫婦選擇的用戶不能選擇同樣的問題,但後來它開始改變第二的價值框到一個它不是的值。它正常工作的一對夫婦兩個選擇,但如果你保持2之間選擇它開始返回不正確的結果

下面是jQuery的代碼,但這裏是Link to 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; 
    }); 
}); 
+0

能否請您解釋一下你所面臨的確切問題..我檢查小提琴和第二個下拉除了有選擇firstdropdown價值 –

+0

值請清楚地解釋你的問題。我沒有看到任何問題。 –

+0

在OP – kurasa

回答

0

的當您使用eq()時會發生問題。我體改那部分和代碼工作正常,

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

入住這裏,http://jsfiddle.net/muthkum/BsHHz/3/

+1

感謝你:) – kurasa

+0

不客氣! –

相關問題