Хей Люди!jquery: как предотвратить выпадающее меню после выбора пользователя?
я получил следующий сценарий-пример, чтобы сделать некоторые выборы:
Fiddle пример: http://jsfiddle.net/dataminer/7zYUS/1/
$(function(){
var My_2_MadeSelection = {
// Second Selection
'001': ['004'],
'002': ['005'],
'003': ['006']
};
// Third Selection
var My_3_MadeSelection = {
'001': ['007'],
'002': ['008'],
'003': ['009']
};
// Fourth Selection
var My_4_MadeSelection = {
'001': ['010'],
'002': ['011'],
'003': ['012']
};
// var
$('#001').change(function() {
var availableMy_2_MadeSelection = My_2_MadeSelection[this.options[this.selectedIndex].value];
var availableMy_3_MadeSelection = My_3_MadeSelection[this.options[this.selectedIndex].value];
var availableMy_4_MadeSelection = My_4_MadeSelection[this.options[this.selectedIndex].value];
// groups
$('#002 option').attr('disabled', function() { return $.inArray(this.value, availableMy_2_MadeSelection) == -1 });
$('#003 option').attr('disabled', function() { return $.inArray(this.value, availableMy_3_MadeSelection) == -1 });
$('#004 option').attr('disabled', function() { return $.inArray(this.value, availableMy_4_MadeSelection) == -1 });
});
// change
$('#001').change(function() {
if (this.options[this.selectedIndex].value === 1) {
$('#002,#003,#004').attr("disabled", "disabled");
} else {
$('#002,#003,#004').removeAttr("disabled");
}
});
// trigger
$('#001').trigger('change');
});
HTML
<div id="selectdiv">
<p>1. Select</p>
<select id="001" class="001" name="001">
<option selected="selected" value="001">001a</option>
<option value="002">001b</option>
<option value="003">001c</option>
</select>
<p>2. Select</p>
<select id="002" class="002" name="002">
<option selected="selected" value="004">002a</option>
<option value="005">002b</option>
<option value="006">002c</option>
</select>
<p>3. Select</p>
<select id="003" class="003" name="003">
<option selected="selected" value="007">003a</option>
<option value="008">003b</option>
<option value="009">003c</option>
</select>
<p>4. Select</p>
<select id="004" class="004" name="004">
<option selected="selected" value="010">004a</option>
<option value="011">004b</option>
<option value="012">004c</option>
</select>
</div>
Проблема: Если пользователь в настоящее время из всех его/ее SELECTIONS пользователь может изменить сначала снова, что приводит к «недоступной комбинации». :(
1.) Есть ли решение отключить первое выпадающее меню, после того как пользователь изменил выпадающее меню второй/третьей/четвертой?
2.) Или можно проверить значения, чтобы дать предупреждение, например, «если вы измените это, вам придется снова изменить другого?»
3.) Или снова сбросьте значения 2/3/4-й позиции в значение «по умолчанию», если первое выпадающее меню было изменено снова?
Sory для моего плохого английского. Надеюсь, кто-то поймет мою проблему. Спасибо за любую помощь. :)
Пришлось поменять .prop на .attr, потому что firebug не понравилось .... Большое вам спасибо! 1-й и 3-й работает отлично. Второй немного раздражает. Может быть, его можно предупредить только, если 001 изменился после того, как 002, 003 и 004 изменились? – Dataminer
@ Dataminer Это было бы так же, как и 1-й. Просто вместо того, чтобы отключить # 001, вы помещаете там предупреждение. –