即使这个问题已经存在了一段时间并且可能已经克服了,我也有同样的疑问,我想我应该分享我所拥有的。
@Spokey 答案非常好,并且有效。但是,它仅在您进行简单选择时才有效。如果你想制作一个多选框,事情会变得有点困难,因为 Select2 没有提供任何独特的属性来轻松找到每个选择的选项。
看了@HyperLink 的回答,我改变了思路,终于得到了一个工作的结果。如果您真的只想传递要显示的值,那将有点困难,我已经浪费了几个小时来尝试这样做。但是有了这样的新方法,事情变得更容易了:
<select name="convert-to" id="convert-to" multiple>
<option value="AUD">AUD - Australian Dollar</option>
<option value="USD">USD - US Dollar</option>
<option value="JPY">JPY - Japanese Yen</option>
<option value="EUR">EUR - Euro</option>
<option value="GBP">GBP - British Pound</option>
<option value="CAD">CAD - Canadian Dollar</option>
<option value="HKD">HKD - Hong Kong Dollar</option>
</select>
只是在真实文本上添加了什么值,这可能不会对用户产生太大影响,但对我们来说,这将有很大帮助。其他答案 javascript 的主要区别是change(function(){})
:
change(function () {
var options = $('.select2-search-choice > div');
i = 1;
Array.prototype.forEach.call(options, function(o) {
o.id = 'choice'+i; // optional, creating ids to
i++; // find it easily if you want
aux = o.textContent.split(" - "); // Divide value from text
o.textContent = aux[0]; // Get first part, i.e, value
console.log(aux);
})
在这里试试