Я использую jQuery и jqGrid.Лучший способ создать динамический список выбора (раскрывающегося списка)?
Я пытаюсь заполнить список выбора динамически, по одному для каждой строки, и мне нужно добавить к нему событие click. Когда список выбора заполняется, я захватываю индекс элемента, который я хочу выбрать, а затем после того, как все элементы добавляются, я пытаюсь установить выбранный элемент.
Я попытался
$("#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);
Таким образом, это означает, что я, вероятно, список заполняется неправильно ...
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;
}
Есть ли лучший способ?
Я пробовал это, но я не мог добавить к нему событие click. Однако был выбран правильный элемент.
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>";
Конкатенация строк может быть медленной в цикле 'for', а затем присоединяться к массиву и присоединяться в конце 'var htmlArray = []; htmlArray.push (""); var html = htmlArray.join (""); – Eric