看看以下选择:
<select>
<optgroup label="A">
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<optgroup label="B">
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
</select>
当选择任何元素时,我想在选择中显示其标签+值而不仅仅是值。因此,如果选择4,我希望选择显示B - 4
答案 0 :(得分:9)
如果您需要将所选值恢复为原始值...请尝试此操作... http://jsfiddle.net/kasperfish/sxvW2/2/
$('select').change(function () {
var opt = $(this).find(':selected');
var sel = opt.text();
var og = opt.closest('optgroup').attr('label');
//alert(sel);
//alert(og);
$(this).blur().find(':selected').text(sel + '-' + og);
});
$('select').focus(function () {
$(this).find('option').each(function(){
console.log($(this).text());
t=$(this).text().split('-');
$(this).text(t[0]);
});
});
UPDATE 使用select2插件,您可以执行以下操作 http://jsfiddle.net/kasperfish/bJxFR/4/
function format(item) {
opt = $('select').find(':selected');
sel = opt.text();
og = opt.closest('optgroup').attr('label');
return item.text+'-'+og;
}
$("select").select2({
formatSelection: format,
escapeMarkup: function(m) { return m; }
});
答案 1 :(得分:1)
更新所选值但看看这个演示
<强> Hacky Demo 强>
$('#select').change(function () {
var selectedOption = $('#select option:selected');
var label = selectedOption.closest('optgroup').attr('label');
var selectText = selectedOption.text();
var length = $(this).find(':selected').text().length;
if (length < 2) {
$(this).find(':selected').text(label + ' - ' + selectText);
}
});
答案 2 :(得分:0)
试试这个:
<强> HTML:强>
<select>
<optgroup label="A">
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<optgroup label="B">
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
</select>
<强>的jQuery / JavaScript的:强>
$('select').change(function () {
var opt = $(this).find(':selected');
var sel = opt.text();
var og = opt.closest('optgroup').attr('label');
//alert(sel);
//alert(og);
$(this).find(':selected').text(sel + '-' + og);
});