Html: Für Select multiple wird nur ein Wert übergeben, aber .val () gibt ein Array mit zwei Werten zurück

7

Beim Rendern der Seite wird val() einer Mehrfachauswahl mit einem einzelnen Wert festgelegt. Beispiel: $("#my_select_box").val(1); Dann wählt der Benutzer einen zusätzlichen Wert in der Mehrfachauswahlbox aus.

Wenn das Formular gesendet wird, wird nur der neu ausgewählte Wert gesendet und nicht der zuvor festgelegte Wert. Während beim Debuggen in Firefox die Funktion .val() ein Array von zwei Werten zurückgibt (sowohl den vorherigen als auch den neu ausgewählten). Warum passiert das?

    
Maddy.Shik 23.08.2011, 00:43
quelle

3 Antworten

18

Wenn Sie in PHP programmieren, liegt das Problem dort. Wenn Sie Multiselect-Eingaben verwenden, müssen Sie nach dem eingegebenen Namen ein leeres Klammerpaar haben. Zum Beispiel:

%Vor%

und nicht nur

%Vor%

Wenn Sie dies nicht tun können oder wollen (vielleicht haben Sie keinen Zugriff auf den zugrunde liegenden HTML-Code), können Sie alternativ die POST-Daten folgendermaßen erfassen:

%Vor%

Und Sie werden eine solche Zeichenfolge sehen, die Sie verwenden können:

%Vor%     
pbarney 21.01.2013 01:47
quelle
2

Nun, ohne Code können wir nicht sicher sein. Wenn jedoch mehrere Parameter übergeben werden sollen, müssen Sie einen Namenswert für die Eingabe der [] Klammern angeben. Ex. "name []", damit der Server weiß, dass tatsächlich zwei Werte vorhanden sind.

    
HaloZero 23.08.2011 00:56
quelle
0

Schwer zu sagen, was ohne den Code zu tun ist.

Wenn Sie jedoch sowohl das option , das Sie mit selected markiert haben, als auch das andere, das ausgewählt wurde, verwenden möchten, können Sie folgendermaßen darauf zugreifen:

option[selected="selected"] für den von Ihnen festgelegten

und

option:selected für den vom Benutzer ausgewählten

So etwas wie das ...

%Vor%

Beispiel: Ссылка

    
Jason Gennaro 23.08.2011 01:23
quelle