Ich versuche, die Werte meiner dynamisch gefüllten Auswahlliste in einer globalen Variable zu erhalten. Dies ist, wie ich bekommen und füllen Sie die Auswahlliste:Wie hole ich die Werte einer dynamischen Auswahlliste in eine globale Variable?
Mein dropdown.js Skript:
$(document).ready(function() {
$("#slctTable").change(function()
{
$.getJSON("dropdown_code/get_fields.php?table=" + $(this).val(), success = function(data)
{
var options = "";
for(var i = 0; i < data.length; i++)
{
options += "<option value='" + data[i] + "'>" + data[i] + "</option>";
}
$("#slctField").html("");
$("#slctField").append(options);
$("#slctField").change();
});
});
});
So nach dieser tryed ich diesen Code in meinem main.js scgript die Werte der Auswahllisten zu bekommen:
$('#slctField > option').each(function(){
console.log(this.value); // Use this.value to get the value of the option
});
var options = [];
$('#slctField > option').each(function(){
options.push(this.value);
});
console.log(options);
Aber wenn ich meine Skripte dies das Ergebnis laufe ich zurück:
Aber wenn ich den Code kopieren und in Firebug einfügen und ausführen. Ich bekomme das Ergebnis, das ich will.So denke ich, die Auswahllisten sind noch nicht gefüllt, wenn ich versuche, die Werte zu bekommen. Aber ich stecke lange darauf und weiß nicht, was ich im Moment machen soll.
Sie sind sehr korrekt! Ihr GET ist asynchron und wird wahrscheinlich abgeschlossen sein, lange nachdem Ihr main.js Code ausgeführt wurde. Sie sollten sicherstellen, dass Ihre Änderungen an der globalen Variablen in gewisser Weise an Ihre Rückrufe gebunden sind, so dass sie später garantiert ausgeführt werden. –
Ja, das ist, was ich dachte. Aber wie kann ich den Callback an eine globale Variable binden? –
Ich habe eine Antwort mit 2 Beispielen gepostet. –