Es scheint, dass deaktivierte Eingabeelemente standardmäßig von ignoriert werden $.serialize()
. Gibt es eine Problemumgehung?
135
Es scheint, dass deaktivierte Eingabeelemente standardmäßig von ignoriert werden $.serialize()
. Gibt es eine Problemumgehung?
textarea
aber keine deaktivierte serialisieren könneninput
.Antworten:
Aktivieren Sie sie vorübergehend.
quelle
readonly
anstattdisabled
wie von Andrew unten erwähnt.Verwenden Sie schreibgeschützte Eingänge anstelle von deaktivierten Eingängen:
Dies sollte von serialize () übernommen werden.
quelle
Sie können eine Proxy-Funktion verwenden (sie betrifft beide
$.serializeArray()
und$.serialize()
):quelle
@ user113716 lieferte die Kernantwort. Mein Beitrag hier ist nur eine jQuery-Freundlichkeit, indem ich ihm eine Funktion hinzufüge:
Anwendungsbeispiel:
quelle
Versuche dies:
quelle
Ich kann einige Problemumgehungen sehen, aber noch hat niemand vorgeschlagen, eine eigene Serialisierungsfunktion zu schreiben. Los geht's: https://jsfiddle.net/Lnag9kbc/
quelle
Deaktivierte Eingabeelemente werden nicht serialisiert, da "deaktiviert" bedeutet, dass sie gemäß W3C-Standard nicht verwendet werden sollten. jQuery hält sich nur an den Standard, obwohl einige Browser dies nicht tun. Sie können dies umgehen, indem Sie ein verstecktes Feld mit einem Wert hinzufügen, der mit dem deaktivierten Feld identisch ist, oder indem Sie dies über jQuery tun:
Wenn Sie mehr als eine deaktivierte Eingabe hätten, müssten Sie natürlich über übereinstimmende Selektoren usw. iterieren.
quelle
Falls jemand sie nicht aktivieren und dann wieder deaktivieren möchte, können Sie dies auch versuchen (ich habe sie von deaktivierten Feldern, die nicht von serializeArray erfasst wurden , von der Verwendung eines Plugins zur Verwendung einer normalen Funktion geändert ):
Sie können sie also so nennen:
quelle
code
3: {name: undefined, value: ""} 4: {name: undefined, value: ""}Gleich hinter Aaron Hudon:
Vielleicht hast du etwas anderes als Input (wie select), also habe ich mich geändert
zu
quelle