Tôi có một loạt các select
phần tử trong một biểu mẫu mà tôi đang sử dụng plugin Jquery Chosen . Làm cách nào để đặt lại biểu mẫu? Cách sau không hoạt động:
<input type="reset" />
Tôi có một loạt các select
phần tử trong một biểu mẫu mà tôi đang sử dụng plugin Jquery Chosen . Làm cách nào để đặt lại biểu mẫu? Cách sau không hoạt động:
<input type="reset" />
Câu trả lời:
Bạn sẽ cần phải đặt lại giá trị của trường, sau đó kích hoạt liszt:updated
sự kiện trên đầu vào để khiến nó cập nhật, tôi đã thực hiện một thao tác với một ví dụ hoạt động ở đây.
$(".chzn-select").chosen();
$('a').click(function(){
$(".chzn-select").val('').trigger("liszt:updated");
});
Kể từ khi phát hành v1.0 đã chọn, trình kích hoạt hiện được gọi là 'đã chọn: đã cập nhật'. Bất kỳ ai sử dụng phiên bản mới này đều cần kích hoạt cập nhật bằng
$(".chosen-select").val('').trigger("chosen:updated");
$selectField.val([]).trigger('chosen:updated')
có vẻ như là một trò lừa
Kể từ khi phát hành v1.0 đã chọn, trình kích hoạt hiện được gọi là 'đã chọn: đã cập nhật'. Bất kỳ ai sử dụng phiên bản mới này đều cần kích hoạt cập nhật bằng
$(".chosen-select").val('').trigger("chosen:updated");
để thiết lập lại hoạt động tự nhiên, hãy sử dụng:
$("input[type='reset'], button[type='reset']").click(function(e){
e.preventDefault();
var form = $(this).closest('form').get(0);
form.reset();
$(form).find('select').each(function(i, v) {
$(v).trigger('chosen:updated');
});
}
$("#Your_id").trigger("chosen:updated");
Điều này đã làm việc cho tôi
Để có một cách tiếp cận không phức tạp hơn ... giả sử thông tin đầu vào của bạn nằm trong <form>
các thẻ:
<form>
<!-- your selects go here and any other input fields -->
<input type="reset" value="Reset">
</form>
Đây là những gì tôi sẽ làm:
$("input[type='reset'], button[type='reset']").click(function(e){
setTimeout(function(){ $("select").trigger("chosen:updated"); }, 50);
});
Xem fiddle tại đây .
Không có tùy chọn nào trước đây phù hợp với tôi. Tôi đã phải làm điều đó giống như trường học cũ, thậm chí sử dụng một số javascript bản địa, đây là mã:
$('#dllSample option').each(function(){
$(this)[0].selected = false;
});
$("#dllSample").trigger("chosen:updated");
Không có câu trả lời nào ở đây phù hợp với tôi. Tôi đang sử dụng lựa chọn đã chọn với nhiều thuộc tính. Nút biểu mẫu gửi bình thường cũng không làm được thủ thuật. Vì vậy, tôi chỉ có một chức năng làm điều này khi nhấp chuột.
//Gets the selected values
var selected = [];
for (var option of document.getElementById('mySelect').options) {
if (option.selected) {
selected.push(option.value);
}
}
//Resets the form
document.getElementById('form1').reset();
//Chosen values doesnt get reset, so we do this manually
//Removes the values selected by clicking on the x icon
$link = $('a.search-choice-close');
var i;
for (i = 0; i < selected.length; i++) {
$link[i].click();
}
Đôi khi bạn phải đặt lại lựa chọn đã chọn được gọi.
tôi làm việc này
jQuery.fn.chosen_reset = function(n){
$(this).chosen('destroy');
$(this).prop('selectedIndex', 0);
$(this).chosen(n)
}
Và gọi hàm này như thế này, với các tùy chọn như một đối số
$('select').chosen_reset({width:'369px'});
Trong jQuery, một cái gì đó như thế này sẽ hoạt động
<input name="Text1" id="something" type="text">
<input type="reset" id="reset_me"/>
$("#reset_me").click(function() {
$("#something").val("");
});