Tôi có một danh sách thả xuống và tôi đã ràng buộc một trình xử lý sự kiện thay đổi cho nó. Bất cứ khi nào người dùng chọn một tùy chọn mới, tôi muốn biết nếu nó là tùy chọn cuối cùng của danh sách.Cách tốt nhất để kiểm tra xem tùy chọn hiện được chọn trong danh sách thả xuống có phải là tùy chọn cuối cùng không?
Annoyingly, điều kiện có liên quan trong đoạn mã dưới đây luôn trả về true, cho dù tùy chọn đã được chọn:
sel.change(function() {
//this always returns true!
if(jQuery('#' + this.id + ' option').is(':last')) {
alert('hello I am the last option');
inputDiv.show();
inputDiv.find("input").attr('disabled',false);
} else {
inputDiv.hide();
inputDiv.find("input").attr('disabled',true);
}
});
Thậm chí nếu tôi làm điều này, kết quả là như nhau:
if(jQuery('#' + this.id + ' option:selected').is(':last')) {
...
Tôi đang làm gì sai? Và nếu bạn biết, tại sao các xét nghiệm đó đều đánh giá đúng?
EDIT: Tìm thấy các giải pháp:
if(jQuery('#' + this.id + ' option:last').is(':selected')) {
...
}
Có ai biết một cách tốt hơn để làm điều này?
Nếu bạn có một giải pháp cho câu hỏi của riêng của bạn, bạn có thể thêm nó như là một câu trả lời không phải là một chỉnh sửa cho câu hỏi. Ngoài ra, tùy chọn không phải jquery bởi porneL có thể hơi nhanh hơn. – bendewey
+1 cho tiêu đề câu hỏi mô tả – Tjorriemorrie