Ngay cả câu hỏi khó khăn này đã ở đây một thời gian và có thể khắc phục, tôi cũng có cùng một nghi ngờ và tôi nghĩ mình nên chia sẻ những gì mình có.
@Spokey câu trả lời là rất tốt và hoạt động. Tuy nhiên nó chỉ hoạt động nếu bạn đang thực hiện một lựa chọn đơn giản. Nếu bạn muốn tạo một hộp chọn nhiều, điều sẽ khó khăn hơn một chút, vì Select2 không cung cấp bất kỳ thuộc tính duy nhất nào để dễ dàng tìm thấy từng tùy chọn được chọn.
Đọc câu trả lời @HyperLink, tôi đã thay đổi cách suy nghĩ và cuối cùng cũng có kết quả làm việc. Sẽ rất khó nếu bạn thực sự chỉ muốn vượt qua giá trị được thể hiện, tôi đã lãng phí một vài giờ để cố gắng làm điều đó. Nhưng có một cách tiếp cận mới như thế này, mọi thứ trở nên dễ dàng hơn:
<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>
Chỉ cần thêm những gì giá trị là trên văn bản thực tế, mà có thể sẽ không tạo sự khác biệt lớn cho người dùng, nhưng đối với chúng ta, nó sẽ giúp một nhiều. Sự khác biệt chính của câu trả lời javascript khác, là 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);
})
Try it here
Nguồn
2014-02-13 06:49:04