Frage

Ich bin die document.form.submit () Funktion für ein ziemlich großes Eingabeformular (Hunderte von Feldern, es ist eine Inventar-Anwendung). Ich rufe diese, nachdem der Benutzer für eine gewisse Zeit inaktiv war, und ich möchte alle Daten, die sie eingegeben haben speichern. Als ich diese die Seite neu geladen versuchen (die Aktion #), aber jeder neuer Text in den Feldern eingegeben wird, nicht in der Anfrage übergeben, damit ich es nicht in der DB zu setzen. Gibt es einen wesentlichen Grund, warum dies geschieht oder ist meinen Code einfach nicht schön zusammen spielen (ich bin mit der EXTJS Gitteransicht, die die Form und eine Bibliothek für die Verfolgung von Leerlaufzeit zeigen)? Vielen Dank, Robert

War es hilfreich?

Lösung

Ich glaube, ich die Antwort hier setzen. Was ich fand, war, dass dies zu tun:     setTimeout ( 'frm.submit ();', 2000); nachladen verursacht die Seite aber hat das Formular nicht. Als ich das tat dies:     frm.submit (); Die Form wurde unterworfen und die Daten übergeben. Ich weiß nicht, warum der erste Weg nicht funktioniert hat, aber ich brauche das nicht zu wissen:)

Andere Tipps

könnte der Server die Eingabewerte für ungültig erklären werden. Sagen Sie, wenn Sie Ihre Seite auf dem Server wie folgt aussieht:

<form action="/page.cgi">
  ...
  <input name="Fieldx" value=""/>
</form>

Ich denke, es wird das Feld ungültig werden. Oder dies der Server Aktion könnte es indirekt zu setzen. In JSF, so etwas wie diese.

<input name="Fieldx" value="#{bean.nullProperty}"/>

Was haben Sie auf dem Server und was ist Ihr Browser?

Ich würde versuchen, die HTML-Post-Anforderung, um zu sehen zu fangen, wenn die Eingabefelder enthalten sind. Wenn sie dann hat Ihr Server-Problem.

Aber in Bezug auf was Sie gesagt haben, ich glaube, es ist, weil es in der Art und Weise Konflikt ist Ihr Browser JavaScript DOM behandelt. Dies kann der Fall sein, wenn Sie Taste den Absenden auf dem Formular auslassen und es funktioniert.

Die submit Methode der HTMLFormElement Objekte sollten nur das Formular aus, als ob der Benutzer den Submit-Button geklickt hatte. Also, wenn das action Attribut des Formulars auf # gesetzt ist, wäre es nur scheint die Seite zu aktualisieren, da es die Formulardaten auf die gleiche Seite schickt.

Seltsam, dass sie es tut immer noch, wenn Sie das action-Attribut auf eine andere Seite gesetzt though.

Ist das method Attribut des Formularsatzes auf get oder post?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top