我正在尝试根据另一个选择的值禁用和默认选择<select>
。当我第一次在<select>
choixVarX中选择一个选项(例如“Pop”)时,<select>
参数执行完全符合我的要求:禁用前两个<optgroup>
和默认选择“pasCentre “和”noDispersion“。但是,当我将choixVarX更改为另一个不触发我想要的行为(例如“PropRetraite”)然后再将其更改为触发我想要的行为(例如“FoyersImposes”或“FoyersFiscaux”)时,第二个{{1} } parametresX表现得很奇怪:第一个<select>
被禁用,但“pasCentre”和“noDispersion”不是默认选择的...任何线索?
<optgroup>
答案 0 :(得分:0)
我认为这对你来说是一个解决方案,我把你的attr更改为prop insed并做了一个转换浪费了很长的if-statment。不幸的是,data-max-options =“1”不起作用必须至少为data-max-options =“2”。所以希望它有所帮助,你可以在这里找到jsfiddle:https://jsfiddle.net/txy4teks/1/
$('#choixVarX').on('change', function () {
switch ($(this).val()) {
case 'Pop':
case 'FoyersImposes':
case 'FoyersFiscaux':
$('#centrageX option[value="median"]').prop('selected', false);
$('#centrageX option[value="moyenne"]').prop('selected', false);
$('#centrageX option[value="pasCentre"]').prop('selected', true);
$('#dispersionX option[value="minmax"]').prop('selected', false);
$('#dispersionX option[value="ecarttype"]').prop('selected', false);
$('#dispersionX option[value="noDispersion"]').prop('selected', true);
$('#centrageX').prop('disabled', true);
$('#dispersionX').prop('disabled', true);
$('.selectpicker').selectpicker('refresh');
break;
case 'PropRetraite':
case 'PropFoyersImposes':
case 'RevMoyen':
$('#centrageX').prop('disabled', false);
$('#dispersionX').prop('disabled', false);
$('.selectpicker').selectpicker('refresh');
break;
}
});