Wie mache ich $.serialize() Sie berücksichtigt diejenigen deaktiviert :input-Elemente?
Scheint es standardmäßig deaktiviert input-Elemente ignoriert, die durch $.serialize()
. Gibt es eine Abhilfe?
- Es ist noch seltsamer, da kann man serialisieren eines Behinderten
textarea
aber nicht eine Behinderteinput
..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorübergehend aktivieren.
readonly
stattdisabled
wie erwähnt von Andrew unten.Verwenden readonly-Eingänge anstelle von Behinderten-Eingänge:
Diese sollten abgeholt, die von serialize().
Können Sie eine Proxy-Funktion (es betrifft beide
$.serializeArray()
und$.serialize()
):@user113716, sofern der Kern der Antwort. Mein Beitrag hier ist nur ein jQuery-Feinheit durch hinzufügen einer Funktion zu:
Beispiel:
Deaktiviert input-Elemente nicht serialisiert werden, weil die "deaktiviert" bedeutet, Sie sollten nicht verwendet werden, per W3C-standard. jQuery ist nur die Einhaltung der standard, obwohl einige Browser nicht. Sie können umgehen dies, indem Sie ein verborgenes Feld mit einem Wert, der identisch mit dem deaktivierten Feld, oder tun dies über jQuery, so etwas wie dieses:
Offensichtlich, wenn Sie mehr als ein Eingang deaktiviert, Sie hätten Durchlaufen passenden Selektoren, etc.
Kann ich sehen, ein paar workarounds, die aber noch niemand vorgeschlagen, das schreiben Ihrer eigenen Serialisierung Funktion? Hier gehen Sie: https://jsfiddle.net/Lnag9kbc/
Versuchen Sie dies:
Den Fall, dass jemand nicht wollen, um Sie zu aktivieren, dann deaktivieren Sie diese wieder, können Sie auch versuchen, dies zu tun (ich habe es geändert von Deaktivierte Felder nicht abgeholt serializeArray, aus mit einem plugin zu verwenden, eine normale Funktion):
So können Sie rufen Sie wie folgt:
Nur über Aaron Hudon :
Vielleicht hast du auch irgendwas anderes als Eingang (wie select), also änderte ich
zu