JSFiddle
tôi đã thiết lập một select
với 3 option
s (1 trống) trong fiddle. Khi tôi chuyển đổi từ foo
sang bar
theo cách thủ công, trình phát nghe change
sẽ hoạt động bình thường.jQuery Chosen không bắn onchange sự kiện khi giá trị được thay đổi thông qua JS
Bây giờ nếu tôi thiết lập lại select
qua JS với code posted in some answers here, sự kiện change
không cháy cho các tùy chọn trống mới được lựa chọn, hơn nữa, nếu tôi chọn tùy chọn được chọn trước khi nhấn vào nút reset
sự kiện onchange
thắng' t cháy hoặc.
tôi chắc chắn rằng các select
'giá trị s là được thay đổi với chức năng ở trên, có thể được nhìn thấy trong fiddle này, nhưng select
' s onchange
sự kiện chỉ đơn giản là không cháy.
Tôi cũng đã thử onchange
, onclick
, oninput
sự kiện không có kết quả. Ngay bây giờ tôi đang tự hỏi nếu tôi nên sử dụng một MutationObserver hoặc loại bỏ các yếu tố được chọn rendered từ DOM và tạo ra một, nhưng tôi có lẽ overthinking nó. Bất kỳ trợ giúp được đánh giá cao.
Ngoài ra:
Câu trả lời này đã giúp tôi rất nhiều: jQuery Chosen reset
Câu trả lời này không giúp: how to fire onchange event in chosen prototype javascript select box?
Mã để tham khảo trong tương lai nếu jsfiddle.net bị gỡ xuống:
HTML
<div id="wrapper">
<select id="chosen">
<option value="!!EMPTY VALUE!!"></option>
<option value="foo">foo</option>
<option value="bar">bar</option>
</select>
</div>
<br>
<button id="reset">Reset</button>
JS
$(function() {
$('#chosen').chosen();
$('#wrapper').on('change', '#chosen', function() {
console.log('onchange: ' + this.value);
});
$('#reset').click(function() {
$("#chosen").val('').trigger("liszt:updated"); //doesn't work
//$("#chosen").prop('selectedIndex', 0).trigger("liszt:updated"); //doesn't work either
console.log('reset: ' + $('option:selected').val());
});
});
** ASP.Net Webforms **: Tôi đã xem qua câu hỏi này khi ứng dụng của tôi dường như gặp sự cố này nhưng hóa ra lại là lỗi Javascript do Trình xác thực ASP WebForm gây ra. Hãy xem [vé jQuery-UI] này (http://bugs.jqueryui.com/ticket/4071#comment:9) – sparebytes