在 <optgroup> 中显示带有组标签的所选选项
Show the selected option with group label in <optgroup>
我有以下代码。我想要选择一个选项,然后selected option
group label
应显示如何实现?
<select id='#grp_option'>
<optgroup label="Group 1">
<option>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option>Option 2.1</option>
<option>Option 2.2</option>
</optgroup>
<optgroup label="Group 3" disabled>
<option>Option 3.1</option>
<option>Option 3.2</option>
<option>Option 3.3</option>
</optgroup>
</select>
我试过 jquery 并用谷歌搜索,但没有找到解决方案。我试过像这样的脚本
onchange
function showLabel(e){
var selected = $('#grp_option :selected');
var id = #grp_option;
var cu_label = $(selected).val();
var label=$(selected).parent().attr('label') + ' - ';
var tlabel = label + cu_label;
//$(id).text(tlabel);
console.log(tlabel);
}
在 console.log 中,我得到第 2 组 - 选项 2.1。但我想在 select input value
中展示这一点 任何人都知道如何实现它?
试试这个,
function showLabel(e){
var selected = $('#grp_option :selected');
var id = '#grp_option';
var cu_label = $(selected).val();
var label=$(selected).parent().attr('label') + ' - ';
var tlabel = label + cu_label;
//$(id).text(tlabel);
console.log(tlabel);
}
并将下拉列表的 id #grp_option
更改为 grp_option
like
<select id='grp_option'>
同时为所有options
点赞添加value
属性,
<option value="3.1">Option 3.1</option>
<option value="3.2">Option 3.2</option>
你很接近!试试这个:
HTML
<label id="target" for="grp_option">Selected: </label>
<br/>
<select id="grp_option">
<optgroup label="Group 1">
<option>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option>Option 2.1</option>
<option>Option 2.2</option>
</optgroup>
<optgroup label="Group 3" disabled>
<option>Option 3.1</option>
<option>Option 3.2</option>
<option>Option 3.3</option>
</optgroup>
</select>
JS
$(document).ready(function () {
$('#grp_option').on('change', function () {
showLabel();
});
// fire on page load
$('#grp_option').change();
});
function showLabel() {
var selected = $('#grp_option :selected');
var item = selected.text();
var group = selected.parent().attr('label');
$('#target').text('Selected: ' + group + ' - ' + item);
}
这是一个有效的 fiddle:http://jsfiddle.net/ojj0L7ht/
添加您想要显示的值。如下我已经完成了。
<select id='grp_option'>
<optgroup label="Group 1">
<option value='Group 1 - Option 1.1'>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option value='Group 2 - Option 2.1'>Option 2.1</option>
<option value='Group 2 - Option 2.2'>Option 2.2</option>
</optgroup>
</select>
然后只需添加此脚本即可。给你
$('#grp_option option').each(function () {
$(this).data('txt', $(this).text());
});
$('#grp_option').change(function () {
$('option', this).each(function () {
$(this).text($(this).data('txt'));
});
$(this).find('option:selected').text($(this).find('option:selected').attr('value'));
});
完成了。
如果您只需要 selected 选项的文本到 optgroup select 试试这个:
var text = $("select[name='selectName'] :selected").text();
console.log(text);
我有以下代码。我想要选择一个选项,然后selected option
group label
应显示如何实现?
<select id='#grp_option'>
<optgroup label="Group 1">
<option>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option>Option 2.1</option>
<option>Option 2.2</option>
</optgroup>
<optgroup label="Group 3" disabled>
<option>Option 3.1</option>
<option>Option 3.2</option>
<option>Option 3.3</option>
</optgroup>
</select>
我试过 jquery 并用谷歌搜索,但没有找到解决方案。我试过像这样的脚本
onchange
function showLabel(e){
var selected = $('#grp_option :selected');
var id = #grp_option;
var cu_label = $(selected).val();
var label=$(selected).parent().attr('label') + ' - ';
var tlabel = label + cu_label;
//$(id).text(tlabel);
console.log(tlabel);
}
在 console.log 中,我得到第 2 组 - 选项 2.1。但我想在 select input value
中展示这一点 任何人都知道如何实现它?
试试这个,
function showLabel(e){
var selected = $('#grp_option :selected');
var id = '#grp_option';
var cu_label = $(selected).val();
var label=$(selected).parent().attr('label') + ' - ';
var tlabel = label + cu_label;
//$(id).text(tlabel);
console.log(tlabel);
}
并将下拉列表的 id #grp_option
更改为 grp_option
like
<select id='grp_option'>
同时为所有options
点赞添加value
属性,
<option value="3.1">Option 3.1</option>
<option value="3.2">Option 3.2</option>
你很接近!试试这个:
HTML
<label id="target" for="grp_option">Selected: </label>
<br/>
<select id="grp_option">
<optgroup label="Group 1">
<option>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option>Option 2.1</option>
<option>Option 2.2</option>
</optgroup>
<optgroup label="Group 3" disabled>
<option>Option 3.1</option>
<option>Option 3.2</option>
<option>Option 3.3</option>
</optgroup>
</select>
JS
$(document).ready(function () {
$('#grp_option').on('change', function () {
showLabel();
});
// fire on page load
$('#grp_option').change();
});
function showLabel() {
var selected = $('#grp_option :selected');
var item = selected.text();
var group = selected.parent().attr('label');
$('#target').text('Selected: ' + group + ' - ' + item);
}
这是一个有效的 fiddle:http://jsfiddle.net/ojj0L7ht/
添加您想要显示的值。如下我已经完成了。
<select id='grp_option'>
<optgroup label="Group 1">
<option value='Group 1 - Option 1.1'>Option 1.1</option>
</optgroup>
<optgroup label="Group 2">
<option value='Group 2 - Option 2.1'>Option 2.1</option>
<option value='Group 2 - Option 2.2'>Option 2.2</option>
</optgroup>
</select>
然后只需添加此脚本即可。给你
$('#grp_option option').each(function () {
$(this).data('txt', $(this).text());
});
$('#grp_option').change(function () {
$('option', this).each(function () {
$(this).text($(this).data('txt'));
});
$(this).find('option:selected').text($(this).find('option:selected').attr('value'));
});
完成了。
如果您只需要 selected 选项的文本到 optgroup select 试试这个:
var text = $("select[name='selectName'] :selected").text();
console.log(text);