J'ai une situation différente, où les valeurs de la liste déroulante sont déjà codées en dur. Il n'y a que 12 districts, donc le contrôle d'interface utilisateur de jQuery Autocomplete n'est pas rempli de code.
La solution est bien plus simple. Parce que je devais parcourir d'autres messages où il était supposé que le contrôle était chargé dynamiquement, je ne trouvais pas ce dont j'avais besoin et je l'ai finalement compris.
Donc, là où vous avez HTML comme ci-dessous, la définition de l'index sélectionné est définie comme ceci, notez la partie -input, qui est en plus de l'ID déroulant:
$('#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>
Quelque chose d'autre a compris à propos du contrôle de saisie semi-automatique est de savoir comment le désactiver / le vider correctement. Nous avons 3 contrôles fonctionnant ensemble, dont 2 s'excluent mutuellement:
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();
}
});
Certains de ces éléments dépassent la portée du message et je ne sais pas où le mettre exactement. Comme cela est très utile et a pris du temps à comprendre, il est partagé.
Und Also ... pour activer un contrôle comme celui-ci, c'est (désactivé, faux) et NON (activé, vrai) - cela a également pris un peu de temps à comprendre. :)
La seule autre chose à noter, en plus du message, est:
$('#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());
}
});
Tous partagés parce qu'il a fallu trop de temps pour apprendre ces choses à la volée. J'espère que c'est utile.