Ich sammle erfolgreich Daten von JSON und eingebettet in meine Dropdown-Liste, aber manchmal die Daten nicht geladen in meinem Dropdown. Es wird an ein anderes Dropdown angehängt (gleiche Klasse, gleiche Daten, andere ID). Wenn ich mehrmals schnell auf die Schaltfläche "Zeile hinzufügen" geklickt habe (fügt eine Zeile mit der Dropdown-Liste hinzu), werden die Daten überhaupt nicht ausgefüllt. Es zeigt leeres Dropdown.Probleme mit bevölkerten Dropdown-Daten von JSON
function getEprIdList() {
var url, listData;
url = 'http://localhost:41251/api/GetEpridList';
$.getJSON(url, function (data) {
$(data).each(function() {
//prolist is the td that contain the dropdown
$("#ProList" + countE).empty();
countE = 0;
option = $("<option></option>");
option.val(this.epridName);
option.append(this.epridName);
//This to set which Project
//.pro is class of the select dropdown
$('.pro').each(function() {
parentName = $(this).closest('table').attr('id');
var parent = $(this).closest('table');
$(data).each(function() {
$("#ProList" + countE, parent).append(option);
countE++;
})
});
});
return false;
});
}
Kann mir bitte jemand sagen, was ich in diesem Code falsch mache? Danke
* Das Dropdown in der dynamischen Tabelle existiert, wenn wir Zeile hinzufügen, dann werden wir neue Zeile mit Dropdown hinzufügen. die haben dynamische ID.
* i hinzufügen Zeile, die das Drop-down in diesem Code enthalten
function addtask(element) {
var name = $(element).closest('tbody').attr('id');
var tb = document.getElementById(name);
var tr = document.createElement('tr');
tr.setAttribute("id", "Task1");
tr.setAttribute("class", "val");
tb.appendChild(tr);
// Add item in Task Row
var cell = tr.insertCell(0);
cell.innerHTML = "<select id=\"taskDdown" + taskCnt + "\" class=\"task\" name=\"taskName\"><option value=\"\" disabled selected hidden>Select Activity</option></select>" +
"<span style=\"color:#333333;\" class=\"icon-grommet-trash icon\" onclick=\"deletetask(this)\"/>";
//Array for Days
var day = ['null', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'ToT'];
for (i = 1; i < 8; i++) {
var cell = tr.insertCell(i);
for (d = 1; d < day.length; d++) {
var dt = day[i];
cell.innerHTML = "<input type=\"text\" name=\"" + dt + "\" onkeypress=\"return event.charCode >= 48 && event.charCode <= 57\" class=\"a hour focus\" onchange=\"deci(this)\" value=\"0.00\">";
}
}
var c9 = tr.insertCell(8);
c9.setAttribute("class", "tot");
c9.setAttribute("name", "taskTotHour");
c9.innerHTML = "0.00";
$(".focus").on("click", function() {
$(this).select();
});
getTaskList();
}
Sie haben zu viele Schleifen hier. Logik macht keinen Sinn – charlietfl
Danke für Ihren Kommentar, aber wenn ich nicht loop, wie kann ich dann Daten von JSON bekommen und in das Dropdown-Menü eingebettet? bitte helfe ... – silentHijab
naja, du brauchst nicht zweimal 'data' zu loopen und in der Tat wiederholst du es mehrmals, je nachdem wie viele '$ ('. pro ')' es gibt – charlietfl