Tôi hiện đang chiến đấu với những lần thả xuống và tôi muốn chia sẻ kinh nghiệm của mình:
Có những tình huống cụ <select>
thể không thể được sử dụng và phải được 'mô phỏng' với trình đơn thả xuống.
Ví dụ: nếu bạn muốn tạo các nhóm đầu vào bootstrap, như Nút có thả xuống (xem http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). Thật không may, <select>
không được hỗ trợ trong các nhóm đầu vào, nó sẽ không được hiển thị đúng.
Hay có ai đã giải quyết điều này rồi? Tôi sẽ rất quan tâm đến giải pháp.
Và để làm cho nó phức tạp hơn nữa, bạn không thể sử dụng một cách đơn giản $(this).text()
để nắm bắt những gì người dùng đã chọn trong danh sách thả xuống nếu bạn đang sử dụng glypicons hoặc phông chữ biểu tượng tuyệt vời làm nội dung cho thả xuống. Ví dụ:
<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
Bởi vì trong trường hợp này không có văn bản và nếu bạn sẽ thêm một số thì nó cũng sẽ được hiển thị trong phần tử thả xuống và điều này là không mong muốn.
Tôi tìm thấy hai giải pháp khả thi:
1) Sử dụng $(this).html()
để lấy nội dung của <li>
phần tử đã chọn và sau đó kiểm tra phần tử đó, nhưng bạn sẽ nhận được một cái gì đó giống như <a href="#0"><i class="fa fa-minus"></i></a>
vậy nên bạn cần chơi với phần này để trích xuất những gì bạn cần.
2) Sử dụng $(this).text()
và ẩn văn bản trong thành phần trong khoảng ẩn :
<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Đối với tôi đây là giải pháp đơn giản và thanh lịch, bạn có thể đặt bất kỳ văn bản nào bạn cần, văn bản sẽ bị ẩn và bạn không cần thực hiện bất kỳ chuyển đổi $(this).html()
kết quả nào như trong tùy chọn 1) để có được những gì bạn cần.
Tôi hy vọng nó rõ ràng và có thể giúp ai đó :-)