J'utilise jQuery et jqGrid.Meilleure façon de créer une liste dynamique (liste déroulante)?
J'essaie de remplir dynamiquement une liste de sélection, une pour chaque ligne et j'ai besoin d'ajouter un événement click. Lorsque la liste de sélection est remplie, j'attrape l'index de l'élément que je veux sélectionner, puis après que tous les éléments sont ajoutés, j'essaie de définir l'élément sélectionné.
J'ai essayé
$("#taskList")[0].selectedIndex = taskIndex;
$("#taskList").selectOptions(taskIndex, true);
$("#taskList").val(1); //Tried to see if I could select any index and no luck.
$("#taskList option[value=" + taskIndex + "]").attr("selected", true);
Donc, cela signifie que je suis probablement peuplant la liste de manière incorrecte ...
var taskList = document.createElement("select");
var taskIndex = 0;
for (var i = 0; i < result.TaskTypes.length; i++) {
$(taskList).addOption(result.TaskTypes[i].TaskId, result.TaskTypes[i].TaskName);
if (result.TaskTypes[i].TaskName == rowData.TaskType)
taskIndex = i;
}
Y at-il une meilleure façon?
J'ai essayé mais je n'ai pas pu ajouter l'événement click. L'élément approprié a été sélectionné cependant.
var taskList = "<select name='taskList' Enabled='true'>";
for (var i = 0; i < result.TaskTypes.length; i++) {
if (result.TaskTypes[i].TaskName == rowData.TaskType)
taskList += "<option selected> " + result.TaskTypes[i].TaskName + "</option>";
else
taskList += "<option>" + result.TaskTypes[i].TaskName + "</option>";
}
taskList += "</select>";
La concaténation de chaîne peut être lente dans une boucle 'for' au lieu de s'ajouter à un tableau et de se joindre à la fin 'var htmlArray = []; htmlArray.push (""); var html = htmlArray.join (""); ' – Eric