[英]How to show different selected value than options label
I have simple html select:我有简单的 html 选择:
<select id="mySelect" style="width:10em">
<option value="val1">Some long text for val 1</option>
<option value="val2">Some long text for val 2</option>
<option value="val3">Some long text for val 3</option>
</select>
opened combo box:打开的组合框:
I dont see what I've selected, I don't want to set width, I want to show different text.我没有看到我选择了什么,我不想设置宽度,我想显示不同的文本。
I want to keep those long texts in floating panel, but when option is selected, I want to see some short version to see option in small space.Is there any solution to show different text in closed than in opened mode?我想在浮动面板中保留那些长期文本,但选择选项后,我希望看到一些简短的版本,以便在小空间中看到选项。有没有任何解决方案可以在关闭中显示不同的文本,而不是在打开的模式下显示不同的文本?
I solved this problem using jQuery by adding hidden option that decouples selected value and text.我使用 jQuery 通过添加将选定值和文本分离的隐藏选项解决了这个问题。 Just override that this hidden option will be selected always and update its value to whatever you want.只需覆盖将始终选择此隐藏选项并将其值更新为您想要的任何值。 In this case I used value as text, but it can be stored in some custom a在这种情况下,我使用 value 作为文本,但它可以存储在一些自定义 a
var val = $("#mySelect").val(); var lbl = $("#mySelect option:selected").text(); $("#mySelect").prepend("<option value='" + val + "' data-value='selected' selected hidden>" + val + "</option>"); $("#mySelect").on('change', function() { var val = $("#mySelect").val(); var lbl = $("#mySelect option:selected").text(); $("#mySelect option[data-value='selected']").attr('value', val); $("#mySelect option[data-value='selected']").text(val); $("#mySelect").val(val); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <h2> jQuery hidden option </h2> <select id="mySelect" style="width:10em"> <option value="val1">Some long text for val 1</option> <option value="val2">Some long text for val 2</option> <option value="val3">Some long text for val 3</option> </select>
Other approach is use bootstrap-select like in example:其他方法是使用bootstrap-select,如示例中所示:
<select class="selectpicker">
<option title="Combo 1">Hot Dog, Fries and a Soda</option>
<option title="Combo 2">Burger, Shake and a Smile</option>
<option title="Combo 3">Sugar, Spice and all things nice</option>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.