2012-06-14 2 views
21

Verwenden von JQuery Mobile Ich habe ein Auswahlfeld, das dynamisch aus einer Datenbank gefüllt wird. Ab sofort funktioniert die Population dieses Kontrollkästchens einwandfrei. Ich habe Funktionalität hinzugefügt, die aus einer Schaltfläche besteht, die eine Funktion über ein Ereignis "bei Klick" aufruft. Die Aufgabe dieser Funktion besteht darin, zu wissen, ob dieses spezielle Kontrollkästchen ausgefüllt wurde oder nicht. wenn es nicht ist, dann wird es einfach nichts tun, aber ansonsten wird es reibungslos laufen. Mein Problem ist festzustellen, ob dieses Auswahlfeld leer ist oder nicht.So prüfen Sie, ob ein Auswahlfeld mit JQuery/Javascript leer ist

Hier ist ein sehr vereinfachtes Beispiel dafür, was mit denen ich zu tun:

<li> 
    <label for="fruit_name">Fruit</label> 
    <select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);"> 
    </select> 
</li> 

Meine Funktion, die von einer separaten Taste aufgerufen wird, sieht wie folgt aus:

function isSelextBoxEmpty(selectBoxId) { 
    var selected_value = $('#fruit_name'); 

    /* More options... still testing the proper way: 
    var selected_value = $('#fruit_name').text; 
    var selected_value = $('#fruit_name').value; 
    var selected_value = $('#fruit_name').length; 
    var selected_value = $('#fruit_name option:selected', this); 
    var selected_value = document.getElementById('fruit_name'); 
    var selected_value = document.getElementById('fruit_name').length; 
    var selected_value = document.getElementById('fruit_name').value; 
    var selected_value = document.getElementById('fruit_name').innerHTML; 
    */ 

    if(selected_value) { 
     alert("NOT null, value: " + selected_value); 
     //do something 
    } 
    else { 
     alert("null, value: " + selected_value); 
     //do something 
    } 
} 

Keine Sorge darüber, was das tut und wie es es macht. Im Moment ist es für mich wichtig, dass ich nicht überprüfen kann, ob die Checkbox leer ist oder nicht. Ich bin mir einfach nicht sicher, wie ich das anstellen soll. Ich habe viel durch Foren und Dokumentation gelesen, aber es gibt viele Implikationen, da dies von der Implementierung selbst abhängt.

Zum Beispiel mit document.getElementById(...)... wird nicht unbedingt false zurück und es hängt davon ab, wie Sie es verwenden. Auch die Verwendung von $("#someID")... in jQuery kann zu den gewünschten Ergebnissen führen oder auch nicht. Ich habe bereits viele verschiedene Male versucht, wie Sie in der kommentierten Linien sehen können, die alle in der if(...) Aussage ausgewertet werden können.

Haben Sie Vorschläge oder Ideen, wie Sie dies erreichen können? Danke im Voraus!

Antwort

53

Um zu überprüfen, ob Auswahlbox alle Werte hat:

if($('#fruit_name').has('option').length > 0) { 

Um zu überprüfen, ob der ausgewählte Wert leer ist:

if(!$('#fruit_name').val()) { 
+1

ich die Antwort auf Sie vergeben, weil Sie es direkt vor Claudio bekam, aber eigentlich Claudio bekam auch rechts nur ein paar Sekunden, nachdem es Sie tat ... DANK beide! Ich wünschte, ich könnte die Belohnung teilen. – AGE

+0

Der letzte Code ist nicht korrekt. Infact, wenn Sie es mit einer Auswahlbox versuchen erhalten Sie null als val(), aber @if (! $ ('# Fruit_name'). Val()) @ TRUE zurück. – sentenza

+0

Nun, ich versuche, meinen Downvote wegzunehmen, weil das korrekt ist, aber stackoverflow lässt mich nicht. Ziemlich Langweilig. Entschuldigung für den Downvote, sollte es ein upvote sein. – gregblass

10

Ein richtiger Weg, um Wert würde

var selected_value = $('#fruit_name').val() 

seine get ausgewählt und dann sollten Sie tun

if(selected_value) { ... } 
2

Eine weitere richtige Art und Weise ausgewählter Wert erhalten würde diese Wähler wird:

$("option[value="0"]:selected") 

Beste für Sie!

Verwandte Themen