Bootstrap select 没有 return clickedIndex on changed.bs.select
Bootstrap select doesn't return clickedIndex on changed.bs.select
我正在使用 Bootstrap Select 插件。
<div class="form-group col-md-6">
<select class="selectpicker form-control" id="veicoli" data-style="btn-transparent" data-title="Veicoli" data-selected-text-format="static" data-live-search="true" multiple>
<option value="1">EA018YE</option>
<option value="11">FM088KP</option>
<option value="17">DT590LW</option>
<option value="21">DB814RZ</option>
<option value="33">DM408DG</option>
<option value="40">EH942GJ</option>
</select>
</div>
I select 选项以编程方式使用:
$(document).ready(function() {
$('#veicoli').selectpicker('val', data);
$('#veicoli').selectpicker('refresh');
}
其中 data
是一个数组:
["11", "33"]
上面的代码在 bootstrap-select 中正确地 select 选项,但是触发的事件 changed.bs.select
,我是这样定义的:
$(document).on('changed.bs.select', '#modale-dettagli #veicoli', function(e, clickedIndex, isSelected, previousValue) {
console.log('e: ' + e);
console.log('clickedIndex: ' + clickedIndex);
console.log('isSelected: ' + isSelected);
console.log('previousValue: ' + previousValue);
}
没有按预期工作,因为 clickedIndex
是 undefined
这是上面事件的输出:
e: [object Object]
clickedIndex: undefined
isSelected: undefined
previousValue: undefined
请注意,当(使用鼠标)单击相同的选项时,相同的事件会正常工作
编辑: 顺便说一句,我现在遇到的问题是早期版本中的错误 val() method doesn't fire changed.bs.select
编辑 2: 我发现我可以使用 this.selectedIndex
获取 selected 选项的索引(而不是使用函数参数 clickedIndex
) 并且 "code trick" 可以完成工作
clickedIndex
有意仅在触发点击事件时返回(当手动 select 选择一个选项时)。文档可能应该更新以反映这一点,但是在使用 val()
方法时很难正确实施,如在多个 select 的情况下,可以一次更改多个值(所以很难确定哪些元素会被考虑 "clicked")。但是,previousValue
应该 被返回,事实上它不是一个错误。这将在 bootstrap-select v1.13.9 中修复,不过 (https://github.com/snapappointments/bootstrap-select/issues/2244).
我正在使用 Bootstrap Select 插件。
<div class="form-group col-md-6">
<select class="selectpicker form-control" id="veicoli" data-style="btn-transparent" data-title="Veicoli" data-selected-text-format="static" data-live-search="true" multiple>
<option value="1">EA018YE</option>
<option value="11">FM088KP</option>
<option value="17">DT590LW</option>
<option value="21">DB814RZ</option>
<option value="33">DM408DG</option>
<option value="40">EH942GJ</option>
</select>
</div>
I select 选项以编程方式使用:
$(document).ready(function() {
$('#veicoli').selectpicker('val', data);
$('#veicoli').selectpicker('refresh');
}
其中 data
是一个数组:
["11", "33"]
上面的代码在 bootstrap-select 中正确地 select 选项,但是触发的事件 changed.bs.select
,我是这样定义的:
$(document).on('changed.bs.select', '#modale-dettagli #veicoli', function(e, clickedIndex, isSelected, previousValue) {
console.log('e: ' + e);
console.log('clickedIndex: ' + clickedIndex);
console.log('isSelected: ' + isSelected);
console.log('previousValue: ' + previousValue);
}
没有按预期工作,因为 clickedIndex
是 undefined
这是上面事件的输出:
e: [object Object]
clickedIndex: undefined
isSelected: undefined
previousValue: undefined
请注意,当(使用鼠标)单击相同的选项时,相同的事件会正常工作
编辑: 顺便说一句,我现在遇到的问题是早期版本中的错误 val() method doesn't fire changed.bs.select
编辑 2: 我发现我可以使用 this.selectedIndex
获取 selected 选项的索引(而不是使用函数参数 clickedIndex
) 并且 "code trick" 可以完成工作
clickedIndex
有意仅在触发点击事件时返回(当手动 select 选择一个选项时)。文档可能应该更新以反映这一点,但是在使用 val()
方法时很难正确实施,如在多个 select 的情况下,可以一次更改多个值(所以很难确定哪些元素会被考虑 "clicked")。但是,previousValue
应该 被返回,事实上它不是一个错误。这将在 bootstrap-select v1.13.9 中修复,不过 (https://github.com/snapappointments/bootstrap-select/issues/2244).