Bootstrap-select 点击获得点击值
Bootstrap-select on click get clicked value
我正在使用 jQuery 插件:bootstrap-select.js 我的 HTML 是 select(多个)-> 选项。当用户 selects 或 deselects 选项时,我想获得当前点击的选项值。
示例:用户 selects 项目 4 = console.log 项目 4。然后用户也 selects 项目 2 = console.log 第 2 项。目前我得到第 4 项,第 2 项...它们总是在一个数组中而不是单独的。
我的最终目标是根据用户select编辑的内容在页面上显示和隐藏 div。将有多个 select 选项字段。
HTML代码:
<fieldset class="dreamT">
<select name="team" id="team" multiple class="dropdown selectpicker show-menu-arrow show-tick form-control" title="Pelaajat" data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
<optgroup>
<option value="item 1">Item 1</option>
<option value="item 2">Item 2</option>
<option value="item 3">Item 3</option>
<option value="item 4">Item 4</option>
<option value="item 5">Item 5</option>
<option disabled value="item 6">Item 6</option>
</optgroup>
</select>
</fieldset>
JS代码:
$("select#team").on("change", function(value){
var This = $(this);
var selectedD = $(this).val();
console.log(selectedD);
});
当前输出:["item 1", "item 3", "item 4", "item 5"]
插件站点:bootstrap-select
或者只在选项元素上设置事件...
$("option").on("click", function(value){
var This = $(this);
var selectedD = $(this).val();
console.log(selectedD);
});
如 bootstrap-select events 中所述,您可以使用 changed.bs.select 事件。
此事件在 select 的值更改后触发。它通过以下 4 个参数:
- 事件
- 点击指数
- 已选中
- 上一个值
$(function () {
$('#team').selectpicker();
$("#team").on("changed.bs.select", function(e, clickedIndex, isSelected, oldValue) {
if (clickedIndex == null && isSelected == null) {
var selectedItems = ($(this).selectpicker('val') || []).length;
var allItems = $(this).find('option:not([disabled])').length;
if (selectedItems == allItems) {
console.log('seleted all');
} else {
console.log('deseleted all');
}
} else {
var selectedD = $(this).find('option').eq(clickedIndex).text();
console.log('selectedD: ' + selectedD + ' oldValue: ' + oldValue);
}
});
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>
<fieldset class="dreamT">
<select name="team" id="team" multiple class="selectpicker show-menu-arrow show-tick form-control" title="" multiple data-actions-box="true"
data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
<optgroup>
<option value="item 1">Item 1</option>
<option value="item 2">Item 2</option>
<option value="item 3">Item 3</option>
<option value="item 4">Item 4</option>
<option value="item 5">Item 5</option>
<option disabled value="item 6">Item 6</option>
</optgroup>
</select>
</fieldset>
试试这个:
console.log(("#your-id option:selected").text());
或者只查找元素上的任何更改并在更改时获取值。
$("#components").on("change", function(e) {
var selected = document.querySelector("#components").selectedOptions[0].value
alert(selected)
});
我正在使用 jQuery 插件:bootstrap-select.js 我的 HTML 是 select(多个)-> 选项。当用户 selects 或 deselects 选项时,我想获得当前点击的选项值。
示例:用户 selects 项目 4 = console.log 项目 4。然后用户也 selects 项目 2 = console.log 第 2 项。目前我得到第 4 项,第 2 项...它们总是在一个数组中而不是单独的。
我的最终目标是根据用户select编辑的内容在页面上显示和隐藏 div。将有多个 select 选项字段。
HTML代码:
<fieldset class="dreamT">
<select name="team" id="team" multiple class="dropdown selectpicker show-menu-arrow show-tick form-control" title="Pelaajat" data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
<optgroup>
<option value="item 1">Item 1</option>
<option value="item 2">Item 2</option>
<option value="item 3">Item 3</option>
<option value="item 4">Item 4</option>
<option value="item 5">Item 5</option>
<option disabled value="item 6">Item 6</option>
</optgroup>
</select>
</fieldset>
JS代码:
$("select#team").on("change", function(value){
var This = $(this);
var selectedD = $(this).val();
console.log(selectedD);
});
当前输出:["item 1", "item 3", "item 4", "item 5"]
插件站点:bootstrap-select
或者只在选项元素上设置事件...
$("option").on("click", function(value){
var This = $(this);
var selectedD = $(this).val();
console.log(selectedD);
});
如 bootstrap-select events 中所述,您可以使用 changed.bs.select 事件。
此事件在 select 的值更改后触发。它通过以下 4 个参数:
- 事件
- 点击指数
- 已选中
- 上一个值
$(function () {
$('#team').selectpicker();
$("#team").on("changed.bs.select", function(e, clickedIndex, isSelected, oldValue) {
if (clickedIndex == null && isSelected == null) {
var selectedItems = ($(this).selectpicker('val') || []).length;
var allItems = $(this).find('option:not([disabled])').length;
if (selectedItems == allItems) {
console.log('seleted all');
} else {
console.log('deseleted all');
}
} else {
var selectedD = $(this).find('option').eq(clickedIndex).text();
console.log('selectedD: ' + selectedD + ' oldValue: ' + oldValue);
}
});
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>
<fieldset class="dreamT">
<select name="team" id="team" multiple class="selectpicker show-menu-arrow show-tick form-control" title="" multiple data-actions-box="true"
data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
<optgroup>
<option value="item 1">Item 1</option>
<option value="item 2">Item 2</option>
<option value="item 3">Item 3</option>
<option value="item 4">Item 4</option>
<option value="item 5">Item 5</option>
<option disabled value="item 6">Item 6</option>
</optgroup>
</select>
</fieldset>
试试这个:
console.log(("#your-id option:selected").text());
或者只查找元素上的任何更改并在更改时获取值。
$("#components").on("change", function(e) {
var selected = document.querySelector("#components").selectedOptions[0].value
alert(selected)
});