我试图从一个选择列表中排除用户在另一个选择列表中选择的内容。
这是一个包含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 :(得分:0)
使用eq()
时会出现问题。我修改了那部分,代码工作正常,
if (currentValue == "") {
$(id).val(0)
} else {
$(id).val(currentValue)
}