Это немного сложнее, чем следует из названия, но вот основные бизнес-правила:
- На
страница, каждая заполнена тем же
параметры и значения.
- Всегда будет три выбранных
меню.
- Всегда будет один и тот же номер
вариантов / значений в каждом выборе
меню.
- Выбор вопроса в любом из
меню удалит этот вопрос как вариант из
два других меню.
- Повторный выбор другого вопроса
из любого меню принесет
назад вопрос, который был
ранее удалены из других
два меню по индексу, в котором оно было ранее.
Я пробовал это несколькими разными способами, и вещь, которая убивает меня, это номер 5. Я знаю, что он не будет вставлен с точным указателем, потому что некоторые вопросы, возможно, уже были удалены, что изменило бы порядок индекс. По сути, для этого требуется insertBefore или insertAfter, который помещает его в тот же «слот».
Даже если вы не публикуете какой-либо код, некоторые мысли о том, как вы могли бы подойти к этому, были бы чрезвычайно полезны. Меню выбора и jQuery выглядят примерно так, но у меня было много попыток сделать это в разных вариациях:
JQuery:
$(function() {
$(".questions").change(function() {
var t = this;
var s = $(t).find(":selected");
// Remove, but no "insert previously selected" yet...
$(".questions").each(function(i) {
if (t != this) {
$(this).find("option[value=" + s.val() + "]").remove();
}
});
});
});
HTML:
<select name="select1" class="questions">
<option value="1">Please select an option...</option>
<option value="2">What is your favorite color?</option>
<option value="3">What is your pet's name?</option>
<option value="4">How old are you?</option>
</select>
<select name="select2" class="questions">
<option value="1">Please select an option...</option>
<option value="2">What is your favorite color?</option>
<option value="3">What is your pet's name?</option>
<option value="4">How old are you?</option>
</select>
<select name="select3" class="questions">
<option value="1">Please select an option...</option>
<option value="2">What is your favorite color?</option>
<option value="3">What is your pet's name?</option>
<option value="4">How old are you?</option>
</select>