Câu trả lời:
Điều này đánh giá là đúng nếu nó đã tồn tại:
$("#yourSelect option[value='yourValue']").length > 0;
Một cách khác sử dụng jQuery:
var exists = false;
$('#yourSelect option').each(function(){
if (this.value == yourValue) {
exists = true;
}
});
.length
có thể làm.
if ( $("#your_select_id option[value=<enter_value_here>]").length == 0 ){
alert("option doesn't exist!");
}
Nó giúp tôi:
var key = 'Hallo';
if ( $("#chosen_b option[value='"+key+"']").length == 0 ){
alert("option not exist!");
$('#chosen_b').append("<option value='"+key+"'>"+key+"</option>");
$('#chosen_b').val(key);
$('#chosen_b').trigger("chosen:updated");
}
});
Tôi đã có một vấn đề tương tự. Thay vì chạy tìm kiếm thông qua dom mỗi lần mặc dù vòng lặp cho điều khiển chọn tôi đã lưu phần tử chọn jquery trong một biến và đã làm điều này:
function isValueInSelect($select, data_value){
return $($select).children('option').map(function(index, opt){
return opt.value;
}).get().includes(data_value);
}