Câu hỏi Chọn2 bỏ chọn tất cả các giá trị


Tôi muốn bỏ chọn tất cả các giá trị bằng một lần nhấp mà không sử dụng từng giá trị id một cách riêng biệt.

Tôi đã chơi đùa một lúc, nhưng điều này chỉ bỏ chọn giá trị đầu tiên. Bất kỳ đề xuất?

Đây là cách tôi cố gắng bỏ chọn:

$( "#mybutton" ).click(function() {    
   $("select").select2('val', '')
});

http://jsfiddle.net/6hZFU/75/


25
2017-09-13 08:57


gốc


Vui lòng thêm mã vào câu hỏi có chứa câu đố. - Rob Schmuecker


Các câu trả lời:


Hãy thử thay vào đó:

$('select').select2({
    placeholder: "select me"
});

$("#mybutton").click(function () {
    $("select").each(function () { //added a each loop here
        $(this).select2('val', '')
    });
});

Bản giới thiệu đây


20
2017-09-13 09:00



Nhưng tại sao không phải là $ làm việc này ("chọn"). Select2 ("val", "")? - danidacar
@danip, phiên bản nào của select2 bạn đang sử dụng, nhiều thay đổi với 4.0, đã thêm một câu trả lời mới bên dưới - Steve
@Steve có, tôi đã gặp sự cố với 4.0 nhưng tôi vẫn không hiểu tại sao mỗi cú pháp hoạt động và nhiều công cụ chọn không - danidacar


$("select").val('').change();

Đó là tất cả :) http://jsfiddle.net/6hZFU/78/

Giải thích: khi bạn thay đổi giá trị của bất kỳ đầu vào nào hoặc chọn qua trình duyệt JavaScript sẽ không kích hoạt sự kiện thay đổi cho thay đổi đó (đó là cách các thông số kỹ thuật nói).

Khi bạn kích hoạt sự kiện thay đổi, select2 sẽ bắt kịp và phản ánh giá trị mới của lựa chọn.


37
2017-09-13 09:03



đẹp ... :) - Tushar Gupta
Bạn kích hoạt sự kiện thay đổi ..? Làm thế nào nó hoạt động? - Jaanus
Có, bởi vì khi bạn thay đổi giá trị của bất kỳ đầu vào nào hoặc chọn qua trình duyệt JavaScript sẽ không kích hoạt sự kiện thay đổi cho thay đổi đó. Khi bạn kích hoạt sự kiện thay đổi, select2 sẽ bắt kịp và phản ánh giá trị mới của lựa chọn. - Ivan Ivanić
Nhận xét cuối cùng của bạn sẽ được thêm vào câu trả lời của bạn để làm rõ. Lời giải thích hay. - Maxime
@Maxime đã thêm :) - Ivan Ivanić


Nếu sử dụng Select2 phiên bản 4.0, bạn sẽ cần phải sử dụng cú pháp mới:

$("select").val(null).trigger("change");

11
2018-06-12 00:45



Làm việc cho phiên bản: 3.4.5 Cảm ơn :) - akash varlani


Nếu bạn muốn xóa nhiều menu thả xuống nhiều lựa chọn bằng cách sử dụng Select2 v4 api, đây là một cách đơn giản:

$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });

Không tập trung vào menu thả xuống và xóa cả hai phần tử "chọn" và "Chọn2";)


0
2018-06-23 18:32





Tôi đã thử các giải pháp trên nhưng nó không hiệu quả với tôi.

Đây là loại hack, nơi bạn không phải trigger change.

$("select").select2('destroy').val("").select2();

hoặc là

$("select").each(function () { //added a each loop here
        $(this).select2('destroy').val("").select2();
});

0
2018-04-12 10:43





Hãy thử điều này, nó hoạt động hoàn hảo.

$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();

#form-search-amenities nên e thay thế bằng ID của bạn <select> thả xuống.


0
2018-05-21 08:16





$('#destinatariMail').val("-1").trigger("change");

Bằng cách này, bạn sẽ bỏ chọn các tùy chọn được gắn thẻ đã được chèn "on-the-fly".


0
2018-05-29 10:19





Trong trường hợp ai đó quan tâm đến giải pháp cấu hình gốc Select2 (không có nút riêng).

Vào thời điểm viết (select2 v 4), Select2 có thể thêm một nút để xóa đa lựa chọn. Không cần <option></option> giải pháp thay thế cho trình giữ chỗ xuất hiện:

$('#my-select').select2({
    placeholder: "Select something",
    allowClear: true
});

Từ tài liệu.


0
2017-07-22 10:46





Bạn cần sử dụng lớp bạn chọn (select2_single)

Thí dụ:

$('#button_clear').click(function () 
{
    $('.select2_single').select2('val',''); 
});

Debes usar la clase de tus chọn

Ej:

$('#button_clear').click(function () 
{
    $('.select2_single').select2('val',''); 
});

-1
2018-04-04 16:34



Vui lòng đăng câu trả lời bằng tiếng Anh. Cảm ơn bạn - Zac
Bạn có thể cung cấp câu trả lời bằng tiếng Anh không. Cảm ơn - Robert
Ok, không sao cả, xin lỗi vì vấn đề này! - Abraham Rosales
Ok robert, tôi thử cung cấp câu trả lời bằng tiếng Anh! - Abraham Rosales