2016-08-10 3 views
1

Ich habe ein select Feld, das mit Daten gefüllt wird, nachdem ein Rückruf erfolgreich war, und ich muss eine Funktion aufrufen, wenn dies geschieht.Wie dynamisch überprüfen, ob Auswahlfeld Daten enthält

Ich habe versucht, die jQuery on .change zu verwenden, aber dies wird nur ausgelöst, nachdem ich eine andere Option auswählen, nicht wenn das Auswahlfeld ausgefüllt ist.

Gibt es eine Möglichkeit, dynamisch zu überprüfen, ob ein Feld select einige Werte erhält?

Das ist, was ich bisher getan habe:

$('select').on('change', function() { 
    // Do something 
}); 

Dies ist, wie ich meine füllen Auswahlliste (Ich verwende Google Apps Script):

function onMetricsSuccess(selectList) { 
    $.each(selectList, function(key, value) { 
     $('select') 
     .append($("<option></option>") 
     .attr("value",value) 
     .text(value)); 
     }); 
    } 
+0

, wie Sie Ihre Auswahlliste bevölkern haben? – Sherlock

+0

Vielleicht können Sie es dieser Antwort hier ähnlich machen: [http://stackoverflow.com/questions/2031826/jquery-change-function-not-working-with-dynamically-populated-select-list] – Otterbein

+0

Versucht es aber es macht immer noch nichts, wenn die Auswahlliste ausgefüllt ist – Valip

Antwort

1

Sie können dies tun ,

Anmerkung: ich habe eine ID die Veranstaltung auf bestimmte Auswahl

0 anzuwenden

// Nach der Auswahlliste bevölkern

$(document).ready(function(){ 
 
    
 
    $('#myDropdown').on('change', function(){ 
 
     alert('Yay I was changed !!'); 
 
    }); 
 
    populateSelect(); 
 
}); 
 

 

 
function populateSelect(){ 
 
    var select = $('#myDropdown'); 
 
    select.append(new Option('Im a text', 'text')); 
 
    select.append(new Option('Im a number', 'number')); 
 
    
 
    $('#myDropdown').trigger('change'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="myDropdown"></select>

+0

Vielen Dank! Das funktioniert, aber ich muss die Funktion 'populateSelect()' nur aufrufen, nachdem die Auswahlliste ausgefüllt wurde ... jetzt wird sie aufgerufen, wenn die Seite geladen wird, selbst wenn in der Auswahlliste kein Wert vorhanden ist – Valip

+0

@PavelValeriu dies ist ein Beispiel, nur weil ich nicht weiß, wie Sie die Liste gefüllt haben, verschieben Sie in diesem Fall einfach diese Zeile '$ ('# myDropdown'). trigger ('change');' am Ende der onMetricsSuccess-Funktion – Sherlock

0

Um zu überprüfen, ob die Drop-Down-Optionen vollständig sind oder nicht versuchen Sie dies:

var length = $('#mySelectList').children('option').length; 
if(length > 0) 
{ 
    // populated successfully 
} 
Verwandte Themen