Wert Bearbeiten einer html-Eingabe-Formular durch javascript
mein HTML-code:
<form action="Generator.klx" method="post" onsubmit="genarate('hiddenField')">
<input type="hidden" id="hiddenField" name="hidden" value=""/>
<input type="submit" name="submit"/>
</form>
meine JavaScript:
function genarate(hiddenField){
var field = document.getElementById(hiddenField);
field.value = "new Value";
}
Aber es didnot Arbeit :(. Kann mir jemand sagen, wo ich falsch war?
Danke
Was genau funktioniert nicht? Wert-Zuweisung? Form Einreichen? Kochen Kaffee?
:), Der Generator.klx nicht empfangen kann, der Wert des hiddenField
Mmmh... haben Sie versucht
danke Felix Kling, das funktioniert perfekt 🙂
Sagen Sie, dass das ändern der
:), Der Generator.klx nicht empfangen kann, der Wert des hiddenField
Mmmh... haben Sie versucht
field.setAttribute('value', "new Value");
statt field.value
? (hier nur raten ;))danke Felix Kling, das funktioniert perfekt 🙂
Sagen Sie, dass das ändern der
field.value = "new Value";
zu field.setAttribute('value', "new Value");
und ändern sonst nichts das problem gelöst? Ich finde, dass sehr schwer zu glauben, setting-Feld-Werte über die value
Eigenschaft ist Moor standard und wurde seit 1995 oder so. Ich habe versucht deinen code mit IE6, IE9, Firefox 3.6, Chrome 10, Opera 11 und Safari 5. Es funktioniert mit field.value = "new Value";
. Sie müssen sich geändert haben, etwas anderes zur gleichen Zeit.InformationsquelleAutor Xitrum | 2011-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrem code, wie zitiert werden sollte, zu arbeiten, und hat in meinen tests mit einer Vielzahl von Browsern. (Ich habe versucht es lokal zu einer ausgeschriebenen form, aber Sie können auch versuchen Sie es hier: http://jsbin.com/ehoro4/1 habe ich geändert, die Methode zu
GET
so können Sie sehen das Ergebnis in der URL.)Meine Vermutung ist, dass Sie etwas sonst auf der Seite mit den
name
oderid
"hiddenField", andere als nur das versteckte Feld haben Sie zitiert. Wenn Sie ändern Sie den Namen des Feldes an, "fluglehorn" oder etwas anderes, die (um -) unwahrscheinlich, dass an anderer Stelle auf Ihrer Seite, es kann gut funktionieren. Das ist, weil der Namensraum vongetElementById
ist (leider) ziemlich überfüllt.Abwechselnd, sind Sie sicher, dass
genarate
erscheint im globalen Gültigkeitsbereich? (E. g., es ist außerhalb von allen anderen Funktionen.) Weil Ihronsubmit
Attribut erfordert, dassgenarate
global sein. Also das funktioniert:aber zum Beispiel wäre dies nicht:
Empfehlen, auch einen debugger (es gibt keine Entschuldigung für die Verwendung von client-side-Debugger hier im Jahr 2011), um einen Haltepunkt auf der
genarate
- Funktion und gehen Sie durch, um zu sehen, was falsch läuft.vielen Dank für Ihre suggesstion
Vereinbart, obwohl in seinem Fall, da er mit einem
onsubmit
- Attribut, es wird nicht ausgewertet, wenn das Formular abgeschickt wird, so lange, wiegenarate
ist in den globalen scope, es wird abgeholt, selbst wenn Sie definiert ist, nachdem das Formular.K: Danke für den edit, aber für die Zukunft, wenn das passiert, ist es meist, weil einige jacka$$ hat verwüstet, die neueste version des JSBin. Um es zu beheben, man kann auf eine bestimmte version (in diesem Fall jsbin.com/ehoro4/1).
Ah, danke. Ich bin neu auf dem front-end-Seite von stackoverflow und ich wurde weitergeleitet zu einer Seite mutwillig zerstört, so dass ich versuchte, es zu bereinigen. Vielen Dank für die Klarstellung.
InformationsquelleAutor T.J. Crowder