Açılır liste değerlerinin zaten sabit kodlandığı farklı bir durumum var. Yalnızca 12 bölge vardır, bu nedenle jQuery Otomatik Tamamlama kullanıcı arabirimi denetimi kodla doldurulmaz.
Çözüm çok daha kolay. Çünkü kontrolün dinamik olarak yüklendiğini varsayarak, ihtiyacım olanı bulamadığım ve sonunda onu anladığım diğer gönderilerde ilerlemek zorunda kaldım.
Bu nedenle, aşağıdaki gibi HTML'ye sahip olduğunuz yerde, seçilen dizini ayarlamak şu şekilde ayarlanır, açılır kimliğe ek olarak -input kısmına dikkat edin:
$('#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>
Otomatik Tamamlama denetimi hakkında keşfedilen başka bir şey, onu nasıl düzgün bir şekilde devre dışı bırakıp / boşaltabileceğidir. Birlikte çalışan 3 kontrolümüz var, bunlardan ikisi birbirini dışlıyor:
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();
}
});
Bunların bir kısmı yazının kapsamı dışındadır ve tam olarak nereye koyacağımı bilmiyorum. Bu çok yardımcı olduğu ve anlaşılması biraz zaman aldığı için paylaşılıyor.
Und Ayrıca ... bunun gibi bir kontrolü etkinleştirmek için, bu (devre dışı, yanlış) ve DEĞİL (etkin, doğru) - bu da biraz zaman aldı. :)
Gönderiye ek olarak dikkat edilmesi gereken tek şey şudur:
$('#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());
}
});
Hepsi paylaşıldı çünkü bunları anında öğrenmek çok uzun sürdü. Umarım bu yardımcı olur.