Ich möchte alle Eingabe- und Textfeldfelder in einem Formular löschen. Bei Verwendung einer Eingabeschaltfläche mit der reset
Klasse funktioniert dies wie folgt :
$(".reset").bind("click", function() {
$("input[type=text], textarea").val("");
});
Dadurch werden alle Felder auf der Seite gelöscht, nicht nur die aus dem Formular. Wie würde mein Selektor nur für die Form aussehen, in der sich die eigentliche Reset-Taste befindet?
Antworten:
quelle
input[type=password]
Felder nicht.Für jQuery 1.6+ :
Für jQuery <1.6 :
Weitere Informationen finden Sie in diesem Beitrag: Zurücksetzen eines mehrstufigen Formulars mit jQuery
Oder
Wie jQuery vorschlägt :
quelle
$(':input').not(':button, :submit, :reset, :hidden').removeAttr('checked').removeAttr('selected').not(':checkbox, select').val('').removeAttr('value');
. Es werden Standardwerte entfernt (dhvalue="something"
nicht für Kontrollkästchen oder Auswahlen).$(':input').not(':button, :submit, :reset, :hidden').removeAttr('checked').removeAttr('selected').not(':checkbox, :radio, select').val('');
(basierend auf Jeppe Mariager-Lams Kommentar)Gibt es einen Grund, warum dies nicht verwendet werden sollte?
quelle
form
, machen Sie es falsch. Sie hätten Recht, wenn der Selektor wäreform
, aber es ist eher der ID-Selektor#form
.$("form").trigger('reset');
wirklich das "Reset" -Ereignis für ALLE<form>
Elemente aus. In den meisten Fällen kann es falsch sein. Aber$("#form").trigger('reset');
(in der ursprünglichen Antwort gezeigt) nur löst das „Reset“ Ereignis auf dem Elemente, das die „Form“ id gesetzt hat (erreichbar mit dem#form
Selektor). Und ja, eine ID sollte nur einmal verwendet werden. Deshalb wird sie "ID" genannt, da sie ein Element eindeutig identifiziert.Dies behandelt keine Fälle, in denen Formulareingabefelder nicht leere Standardwerte haben.
So etwas sollte funktionieren
quelle
Wenn Sie Selektoren verwenden und Werte zu leeren Werten machen, wird das Formular nicht zurückgesetzt, sondern alle Felder werden leer. Beim Zurücksetzen wird das Formular so erstellt, wie es vor allen Bearbeitungsaktionen des Benutzers nach dem Laden des Formulars von der Serverseite war. Wenn eine Eingabe mit dem Namen "Benutzername" vorhanden ist und dieser Benutzername von der Serverseite vorab eingegeben wurde, löschen die meisten Lösungen auf dieser Seite diesen Wert aus der Eingabe und setzen ihn nicht auf den Wert zurück, der vor den Änderungen des Benutzers vorhanden war. Wenn Sie das Formular zurücksetzen müssen, verwenden Sie Folgendes:
Wenn Sie das Formular nicht zurücksetzen müssen, sondern alle Eingaben mit einem Wert füllen müssen, z. B. einem leeren Wert, können Sie die meisten Lösungen aus anderen Kommentaren verwenden.
quelle
Einfach, funktioniert aber wie ein Zauber.
quelle
Wenn jemand diesen Thread noch liest, ist hier die einfachste Lösung, die nicht jQuery, sondern einfaches JavaScript verwendet. Wenn sich Ihre Eingabefelder in einem Formular befinden, gibt es einen einfachen JavaScript-Rücksetzbefehl:
Mehr dazu hier: http://www.w3schools.com/jsref/met_form_reset.asp
Prost!
quelle
quelle
Warum muss das überhaupt mit JavaScript gemacht werden?
http://www.w3.org/TR/html5/the-input-element.html#attr-input-type-keywords
Hier ist eine Möglichkeit, dies mit jQuery zu tun:
quelle
.live()
ist veraltet und auch langsam / unnötig. Sie könnten einfach.bind()
oder verwenden.on()
.Wenn Sie alle Eingabefelder unabhängig von ihrem Typ leeren möchten, ist dies nur eine Minute entfernt
quelle
Ich habe den einfachsten Trick, um die Form zurückzusetzen
oder
quelle
Mit Javascript können Sie dies einfach mit dieser Syntax tun
getElementById("your-form-id").reset();
Sie können jquery auch verwenden, indem Sie die Reset-Funktion auf diese Weise aufrufen
$('#your-form-id')[0].reset();
Denken Sie daran, nicht zu vergessen
[0]
. Sie erhalten die folgende Fehlermeldung, wennJQuery bietet auch ein Ereignis, das Sie verwenden können
Ich habe es versucht und es funktioniert.
Hinweis: Es ist wichtig zu beachten, dass diese Methoden Ihr Formular nur auf den vom Server beim Laden der Seite festgelegten Anfangswert zurücksetzen. Das heißt, wenn Ihre Eingabe vor einer zufälligen Änderung auf den Wert 'set value' gesetzt wurde, wird das Feld nach dem Aufruf der Reset-Methode auf denselben Wert zurückgesetzt.
Ich hoffe es hilft
quelle
Wo
editPOIForm
ist dasid
Attribut Ihres Formulars?quelle
#editPOIForm
und daher.each()
macht die Methode keinen Sinn. Selbst wenn Sie diese ID mehreren Formularen hinzufügen, wird immer nur eines zurückgegeben.$('#editPOIForm').get(0).reset();
Warum benutzt du nicht
document.getElementById("myId").reset();
? das ist das einfache und hübschequelle
Getesteter und verifizierter Code:
Javascript muss enthalten sein
$(document).ready
und mit Ihrer Logik übereinstimmen.quelle
Die einfachste und beste Lösung ist:
$("#form")[0].reset();
Nicht hier verwenden -
$(this)[0].reset();
quelle
form.reset();
werden diese Werte zurückgesetzt und die Eingaben nicht gelöscht.Nehmen wir an, wenn Sie die Felder löschen möchten und außer accountType, wird das Dropdown-Feld für die mittlere Zeit auf einen bestimmten Wert zurückgesetzt, dh 'Alle'. Die verbleibenden Felder sollten auf leer zurückgesetzt werden, dh das Textfeld. Dieser Ansatz wird zum Löschen verwendet bestimmte Bereiche als unsere Anforderung.
quelle
Ich benutze das :
Und hier ist mein Knopf:
quelle
Verwenden Sie diesen Code, wenn Sie die normale Rücksetzfunktion von jQuery aufrufen möchten
Und schreiben Sie diese Funktion aus Site jQuery auf Document Ready
quelle
Einige von Ihnen haben sich darüber beschwert, dass Radios und dergleichen vom Standardstatus "Aktiviert" befreit sind. Sie müssen lediglich die Kontrollkästchen: Radio ,: zur .not hinzufügen, und das Problem ist behoben.
Wenn Sie nicht alle anderen Rücksetzfunktionen zum Laufen bringen können, wird dies der Fall sein.
Angepasst an die Antwort von ngen
quelle
frmID
ist die Identifikation des FormularsOnSuccess
der Operation nennen wir die JavaScript-Funktion mit dem Namen "ClearInput
"Wenn Sie beide richtig machen, können Sie nicht verhindern, dass es funktioniert ...
quelle
Der folgende Code löscht das gesamte Formular und seine Felder sind leer. Wenn Sie nur ein bestimmtes Formular löschen möchten, wenn die Seite mehr als ein Formular enthält, geben Sie bitte die ID oder Klasse des Formulars an
quelle
Wenn ich alle Felder außer accountType löschen möchte, verwenden Sie Folgendes
quelle
Der Code, den ich hier und zu verwandten SO-Fragen sehe, scheint unvollständig zu sein.
Das Zurücksetzen eines Formulars bedeutet das Festlegen der ursprünglichen Werte aus dem HTML-Code. Daher habe ich dies für ein kleines Projekt zusammengestellt, das ich basierend auf dem obigen Code durchgeführt habe:
Bitte lassen Sie mich wissen, wenn ich etwas vermisse oder etwas verbessert werden kann.
quelle
Keiner der oben genannten Fälle funktioniert in einem einfachen Fall, wenn die Seite einen Aufruf der Webbenutzersteuerung enthält, der die Verarbeitung von IHttpHandler-Anforderungen (captcha) umfasst. Nach dem Senden der Anforderung (für die Bildverarbeitung) löscht der folgende Code nicht die Felder im Formular (vor dem Senden der HttpHandler-Anforderung). Alles funktioniert ordnungsgemäß.
quelle
Ich habe ein universelles jQuery-Plugin geschrieben:
quelle
Fügen Sie die versteckte Schaltfläche zum Zurücksetzen wie folgt hinzu
quelle
$ ('form'). submit (function () {
});
quelle