9 Stimmen

Eigenschaft "defaultValue" für <select>?

Javascript hat textObject.defaultValue=somevalue zum Abrufen des Standardwerts (gespeicherter Wert vom Laden der Seite) einer Eingabe, selbst wenn Sie die Eingabe löschen und den Inhalt ersetzen, können Sie immer noch den Standardwert zurückbekommen. Zum Beispiel so:

// in the html page
<input id="addr1" type="text" value="21 Oak St." />

// the jquery
myInput = $("#addr1"); // the input, default value on page load = 21 Oak St.

$(myInput).val('51 New St'); // wipe default and set new

// alerts 21 Oak St
alert($(myInput).val($(myInput)[0].defaultValue));

Wie erreichen Sie das bei einer Auswahl?

selectedIndex ist boolesch, nicht der Wert, also funktioniert das nicht.

Gracias.

1 Stimmen

Ich glaube nicht, dass selectedIndex ein Boolean ist, sollte es eine ganze Zahl sein, und wie @Pointy sagte, wenn Sie die Optionen iterieren, um den defaultSelected zu erhalten, können Sie den selectedIndex auf den Index des defaultSelected setzen.

0 Stimmen

Sie müssen die Eigenschaft "selected" für die Option selbst verwenden, die Sie als Standard festlegen möchten. fahren Sie auf diesem Weg fort.

18voto

Pointy Punkte 387467

Sie sollten sich das Attribut "defaultSelected" der "option"-Elemente ansehen.

Anfänglich ist "defaultSelected" wahr, wenn das ursprüngliche HTML des Optionstags ein explizites Attribut "selected" hatte. Sie können dies ändern, indem Sie das Attribut auf Options-Tags mit Javascript setzen, nachdem die Seite geladen wurde, als Reaktion auf die von Ihnen gewünschten Bedingungen.

6voto

Davious Punkte 1773

Dies ist die Jquery, die bei mir funktioniert:

$('select[name="name_of_select"] option[selected]').val()

0 Stimmen

Das einzige Problem dabei ist, dass keine Optionen die selected HTML-Attribut gesetzt ist, gibt er undefiniert zurück. Aber in diesem Fall ist der Standardwert die erste Option.

5voto

sakhunzai Punkte 12935

Mit Jquery können wir so etwas machen:

$('select[name="type_id"] option').map(function()
 { 
    if($(this).attr('defaultSelected')==true) return this 
 }).get(0).value;

Dies gibt den Standardwert der Option Selected zurück :)

1voto

redsd Punkte 11

Ich habe das Folgende verwendet, um eine Schleife durch ein Forum zu ziehen, die Standardwerte und die aktuellen Werte zu überprüfen.

Wenn das Skript auf ein einzelnes Auswahlfeld stößt, durchläuft es die untergeordneten Felder des Auswahlfeldes.

oFormObject = document.forms[0];
for(i=0; i<oFormObject.elements.length; i++)
{
     oValue = oFormObject.elements[i].value;
     oType = oFormObject.elements[i].type;
     if(oType=='select-one') {
         for(k=0; k<oFormObject.elements[i].children.length; k++)
         {
             if(oFormObject.elements[i].children[k].defaultSelected==true){
                 oformElement = oFormObject.elements[i].children[k].value;
             }
         }
     }else{
         oformElement = oFormObject.elements[i].defaultValue;
     }
     console.log(oformElement);
     console.log(oValue);
     console.log(oType);
 }

0voto

Diego Perini Punkte 1

Es kann mehrere "ausgewählte" Optionselemente geben; in diesem Fall wird das erste ausgewählt, wenn keine anderen Anforderungen festgelegt sind. Der Tipp von @Pointy ist richtig, aber beachten Sie, dass die Eigenschaft "defaultValue" durch anderen Code auf derselben Seite überschrieben werden kann. Wenn sie schreibgeschützt wäre, wäre sie nützlicher :-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X