JQuery Bootstrap selectpicker on('change') set selec
JQuery Bootstrap selectpicker on('change') set selected
我正在尝试根据另一个选择的值禁用并默认选择<select>
。当我第一次在<select>
choixVarX中选择一个选项(例如"Pop")时,<select>
parametersX会执行我希望它执行的操作:禁用前两个<optgroup>
,默认选择"pasCentre"answers"noDispersion"。然而,当我将choixVarX更改为另一个不触发我想要的行为的参数时(例如"PropRetraite"),然后再次将其更改为一个触发我想要行为的参数(例如"FoyersComposes"或"Foyers Discaux"),第二个<select>
参数X的行为很奇怪:第一个<optgroup>
被禁用,但"pasCentre"answers"noDispersion"不是默认选择的。。。有线索吗?
<select class="selectpicker" name="choixVarX" id="choixVarX" size="1" onChange="populateMap('#DDDDC2','#000000',listeComparaison);">
<option value="Pop">Population</option>
<option value="FoyersImposes">Nombre de foyers imposés</option>
<option value="FoyersFiscaux">Nombre de foyers fiscaux</option>
<option value="PropRetraite">Part des retraites dans les revenus</option>
<option value="PropFoyersImposes">Proportion de foyers imposés</option>
<option value="RevMoyen">Revenu moyen</option>
</optgroup>
</select>
<select class="selectpicker" multiple name="parametresX[]" id="parametresX" size="1" data-width="150px" onChange="populateMap('#DDDDC2','#000000',listeComparaison);" data-max-options="3">
<optgroup label="Centrage des données" data-max-options="1" id="centrageX">
<option value="median">Médiane des communes</option>
<option value="moyenne">Moyenne des communes</option>
<option value="pasCentre">Ne pas centrer</option>
</optgroup>
<optgroup label="Dispersion" id="dispersionX" data-max-options="1">
<option value="minmax">Min-Max</option>
<option value="ecarttype">Ecart-type</option>
<option value="noDispersion">Aucun</option>
</optgroup>
<optgroup label="Echelle" id="echelleX" data-max-options="1">
<option value="echelleComplete">Echelle étendue</option>
<option value="echelleAdaptee">Echelle réduite</option>
</optgroup>
</select>
$('#choixVarX').on('change',function(){
if($('#choixVarX').val()=="FoyersImposes" || $('#choixVarX').val()=="FoyersFiscaux" || $('#choixVarX').val()=="Pop"){
$('.selectpicker').selectpicker('refresh');
$('#centrageX option[value="median"]').attr('selected',false);
$('#centrageX option[value="moyenne"]').attr('selected',false);
$('#centrageX option[value="pasCentre"]').attr('selected',true);
$('#dispersionX option[value="minmax"]').attr('selected',false);
$('#dispersionX option[value="ecarttype"]').attr('selected',false);
$('#dispersionX option[value="noDispersion"]').attr('selected',true);
$('#centrageX').attr('disabled',true);
$('#dispersionX').attr('disabled',true);
$('.selectpicker').selectpicker('refresh');
}else{
$('#centrageX').attr('disabled',false);
$('#dispersionX').attr('disabled',false);
$('.selectpicker').selectpicker('refresh');
}
});
我认为这将是一个适合您的解决方案,我将您的属性更改为prop-insd,并对long-if语句进行了切换。不幸的是,datamax-options="1"不起作用,必须至少为datamax-ooptions="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;
}
});
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- Ember Data DS.Model's set函数不起作用
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- 为什么可以't我用Set对象调用Array.prototype.map
- Sequelize associations:set[Models]添加新模型,而不是关联现有模型
- 如何使用选项useCSS set true为bxSlider加载onSlideAfter()事件
- Node JS,传统的数据结构?(如Set等),任何类似Java.util的node
- Bootstrap-Datepicker not selecting date when using "set
- Looking for function identical to lodash's [_.set]()
- Angular sqlLite set css url()无法设置相对路径
- Typerror:set 不是带有 angularjs 的函数
- 在使用 findAndModify 时$set运算符中将函数参数作为字段名称传递
- fabric.js:使用 Image.set() 调整图像大小是否会降低图像质量
- dataTransfer.set拖放的数据在chrome中不起作用
- 在 app.locals 上设置属性和调用 app.set() 有什么区别?
- console.log 在 CasperJS 的 set Timeout 评估中不起作用
- JQuery Bootstrap selectpicker on('change') set selec