2009-05-11 6 views
1

Ich habe eine Dropdown-Liste, die durch eine Javascript-Funktion von einer externen Firma ausgefüllt wird. Es prüft grundsätzlich, ob die Eingabe von einem gültigen Postleitzahltyp ist und gibt dann mögliche Adressen in eine Drop-Down-Liste zurück.Wie kann ich ein Label anzeigen, je nachdem, ob eine Dropdown-Liste Optionen enthält?

Ich bin fest, wie dann eine kleine Nachricht anzuzeigen, sobald die Dropdown-Liste einige Optionen hat, d. H. Eine Adresse wurde gefunden und in die Auswahl gefüllt.

Ich habe dies versucht:

$(function() { 
    function showmsg() { 
    if ($("#selectaddress").length > 1) 
     $('#buttonhint2').slideDown('normal'); 
    } 
    $("#btnFind").click(showmsg) 
}); 

Aber es tut nichts. Ich bin ein kompletter Neuling, und ich bin mir nicht sicher, ob ich überhaupt den richtigen Baum anbreche. Jede Hilfe wird sehr geschätzt.

+1

Wann wird diese Funktion ausgelöst? Hast du einen Timer? Wird es beim Laden der Seite ausgelöst? – Eppz

Antwort

1

Versuchen Sie, Ihre Funktion ShowMsg(), die außerhalb des Dokuments bereit zu bewegen:

function showmsg() { 
    if ($("#selectaddress").length > 1)  
    $('#buttonhint2').slideDown('normal'); 
} 
$(function() { 
    $("#btnFind").click(showmsg) 
}); 
2

Nun, würden Sie wahrscheinlich warten müssen, bis die externe Funktion ihren Code tatsächlich ausgeführt wird. Ich weiß nichts über diese Funktion oder wo das läuft, damit ich dir nicht zu viel helfen kann. Wenn es eine Möglichkeit für Sie bietet, ihm eine Callback-Funktion zu geben, geben Sie ihm einfach die 'showmsg' -Funktion, die Sie haben (und schrieb außerhalb der Anweisung Dokument bereit, wie Jimmie erwähnt).

Wenn es keinen Callback-Funktionsparameter erlaubt und Sie wissen, dass es beim Laden der Seite ausgeführt wird, können Sie die showmsg-Funktion um 500 ms oder etwas verzögern. Das könnte genügend Zeit für das erste geben Skript zum Ausführen (aber, Sie würden damit herumspielen wollen, bis Sie es richtig machen). Wenn die erste Funktion AJAX verwendet, um die Daten abzurufen, sollten Sie die Funktion erneut verwenden oder diese Funktion von Drittanbietern ändern (sofern die Lizenz dies zulässt), um die Rückruffunktionalität hinzuzufügen.

können Sie Ihr Skript festgelegt, wie so zu verzögern:

$(function() { 
    setTimeout(function() { 
     if ($("#selectaddress option").length > 0) {  
      $('#buttonhint2').slideDown('normal'); 
     } 
    },500); 
}); 

Auch nehmen nicht, dass Sie für die Anzahl der Optionen in Ihrer Auswahlbox nicht die Anzahl der Auswahlboxen Sie überprüfen müssen haben Die Seite. Und Sie suchten nach mindestens zwei Optionen vor, das Skript, das ich überprüft für mindestens 1.