Tôi có một tình huống khác, trong đó các giá trị danh sách thả xuống đã được mã hóa cứng. Chỉ có 12 quận nên điều khiển giao diện người dùng jQuery Autocomplete không được điền bằng mã.
Giải pháp dễ dàng hơn nhiều. Bởi vì tôi đã phải lội qua các bài viết khác, nơi người ta cho rằng điều khiển đang được tải động, không tìm thấy thứ tôi cần và cuối cùng tìm ra nó.
Vì vậy, nơi bạn có HTML như bên dưới, thiết lập chỉ mục đã chọn được đặt như thế này, lưu ý phần -input, ngoài id thả xuống:
$('#project-locationSearch-dist-input').val('1');
<label id="lblDistDDL" for="project-locationSearch-input-dist" title="Select a district to populate SPNs and PIDs or enter a known SPN or PID." class="control-label">District</label>
<select id="project-locationSearch-dist" data-tabindex="1">
<option id="optDistrictOne" value="01">1</option>
<option id="optDistrictTwo" value="02">2</option>
<option id="optDistrictThree" value="03">3</option>
<option id="optDistrictFour" value="04">4</option>
<option id="optDistrictFive" value="05">5</option>
<option id="optDistrictSix" value="06">6</option>
<option id="optDistrictSeven" value="07">7</option>
<option id="optDistrictEight" value="08">8</option>
<option id="optDistrictNine" value="09">9</option>
<option id="optDistrictTen" value="10">10</option>
<option id="optDistrictEleven" value="11">11</option>
<option id="optDistrictTwelve" value="12">12</option>
</select>
Một điều khác được tìm ra về điều khiển Tự động điền là cách tắt / làm trống nó một cách chính xác. Chúng tôi có 3 điều khiển hoạt động cùng nhau, 2 trong số đó loại trừ lẫn nhau:
spnDDL.combobox({
select: function (event, ui) {
var spnVal = spnDDL.val();
$('#project-locationSearch-pid-input').val('');
$('#project-locationSearch-pid-input').prop('disabled', true);
pidDDL.empty();
}
});
spnDDL.siblings('label').tooltip();
pidDDL.combobox({
select: function (event, ui) {
var pidVal = pidDDL.val();
$('#project-locationSearch-spn-input').val('');
$('#project-locationSearch-spn-input').prop('disabled', true);
spnDDL.empty();
}
});
Một số điều này nằm ngoài phạm vi của bài đăng và tôi không biết phải đặt nó chính xác ở đâu. Vì điều này rất hữu ích và cần một thời gian để tìm hiểu, nên nó đang được chia sẻ.
Und Ngoài ra ... để kích hoạt một điều khiển như thế này, nó (bị vô hiệu hóa, sai) và KHÔNG (được bật, đúng) - cũng mất một chút thời gian để tìm ra. :)
Điều duy nhất cần lưu ý, ngoài bài đăng, là:
$('#project-locationSearch-dist').combobox({
select: function (event, ui) {
$('#project-locationSearch-pid-input').prop('disabled', false);
$('#project-locationSearch-spn-input').prop('disabled', false);
pidDDL.empty();
spnDDL.empty();
GetSPNsByDistrict(districtDDL.val());
GetPIDsByDistrict(districtDDL.val());
}
});
Tất cả đều chia sẻ vì đã mất quá nhiều thời gian để học những điều này một cách nhanh chóng. Hy vọng điều này là hữu ích.