Ho una situazione diversa, in cui i valori dell'elenco a discesa sono già hardcoded. Ci sono solo 12 distretti, quindi il controllo dell'interfaccia utente di completamento automatico jQuery non è popolato da codice.
La soluzione è molto più semplice. Perché ho dovuto guadare altri post in cui si presumeva che il controllo venisse caricato dinamicamente, non trovavo ciò di cui avevo bisogno e poi finalmente l'ho capito.
Quindi, dove hai HTML come sotto, l'impostazione dell'indice selezionato è impostato in questo modo, nota la parte -input, che è in aggiunta all'id a discesa:
$('#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>
Qualcos'altro capito sul controllo Autocomplete è come disabilitarlo / svuotarlo correttamente. Abbiamo 3 controlli che lavorano insieme, 2 dei quali si escludono a vicenda:
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();
}
});
Alcuni di questi vanno oltre lo scopo del post e non so dove metterli esattamente. Poiché questo è molto utile e ha richiesto del tempo per capirlo, viene condiviso.
Und anche ... per abilitare un controllo come questo, è (disabilitato, falso) e NON (abilitato, vero) - anche questo ha richiesto un po 'di tempo per capirlo. :)
L'unica altra cosa da notare, molto oltre al post, è:
$('#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());
}
});
Tutto condiviso perché ci è voluto troppo tempo per imparare queste cose al volo. Spero che questo sia utile.