Ich habe eine HTML-Eingabe mit einem Link im Wert.
<input type = 'text' value = 'http://www.link.com' id = 'link' />
Ich verwende jQuery, um den Wert für ein bestimmtes Ereignis zu ändern.
$('#link').val('new value');
Der obige Code ändert den Wert des Textfelds, jedoch nicht den Wert im Code (value = 'http://www.link.com' bleibt unverändert). Ich brauche den Wert = '', um mich ebenfalls zu ändern.
javascript
jquery
Lukas
quelle
quelle
in the code
? Betrachten Sie die ursprüngliche (also unveränderte) Quelle der Seite?Antworten:
Verwenden Sie
attr
stattdessen.$('#link').attr('value', 'new value');
Demo
quelle
setAttribute
oder jQuery's verwenden, wirkenattr
Sie sich auch auf den Wert des DOM-Elements aus: jsfiddle.net/a8SxF/1.html()
, dann wird es immer noch den gleichen alten Wert geben, egal ob Sie verwenden.val('new value')
oderattr('value', 'new value')
... :(Durch Ändern der value-Eigenschaft wird das nicht geändert
defaultValue
. Im Code (abgerufen mit.html()
oderinnerHTML
) enthält das value-AttributdefaultValue
die Eigenschaft value und nicht value.quelle
um Ricardos Antwort etwas zu erweitern: https://stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
über val ()
quelle
Dies ist nur ein mögliches Szenario, das mir passiert ist. Nun, wenn es jemandem hilft, dann großartig: Ich habe eine komplizierte App geschrieben, die irgendwo entlang des Codes eine Funktion verwendet hat, um alle Textfeldwerte zu löschen, bevor sie angezeigt werden. Einige Zeit später habe ich versucht, einen Textfeldwert mit jquery val ('value') festzulegen, aber ich habe nicht bemerkt, dass ich gleich danach die ClearAllInputs-Methode aufgerufen habe. Dies könnte also auch passieren.
quelle
Mein ähnliches Problem wurde durch Sonderzeichen (z. B. Punkte) in der Auswahl verursacht.
Die Lösung bestand darin, den Sonderzeichen zu entkommen:
quelle
quelle
Für mich war das Problem, dass das Ändern des Werts für dieses Feld nicht funktioniert hat:
Keine der oben genannten Lösungen hat bei mir funktioniert, daher habe ich weiter nachgeforscht und festgestellt:
Gemäß DOM Level 2-Ereignisspezifikation: Das Änderungsereignis tritt auf, wenn ein Steuerelement den Eingabefokus verliert und sein Wert seit dem Erhalt des Fokus geändert wurde. Das bedeutet, dass das Änderungsereignis so konzipiert ist, dass es bei Änderungen durch Benutzerinteraktion ausgelöst wird. Programmatische Änderungen führen nicht dazu, dass dieses Ereignis ausgelöst wird.
Die Lösung bestand darin, die Triggerfunktion hinzuzufügen und ein Änderungsereignis wie folgt auszulösen:
quelle
Überprüfen Sie mehr als ein Element mit nicht eindeutiger ID! Das war meine Situation mit jeder Schleife und der Verdoppelung meiner Ausweise.
quelle