Pregunta

Estoy usando la función document.form.submit () para un formulario de entrada bastante grande (cientos de campos, es una aplicación de inventario). Llamo a esto después de que el usuario ha estado inactivo durante un cierto tiempo y me gustaría guardar cualquier información que haya escrito. Cuando intento esto, la página se vuelve a cargar (la acción es #) pero cualquier texto nuevo escrito en los campos no se pasa en la SOLICITUD, por lo que no puedo ponerlo en la base de datos. ¿Hay alguna razón fundamental por la que esto sucede o mi código simplemente no funciona bien (estoy usando la vista de cuadrícula EXTJS para mostrar el formulario y una biblioteca para rastrear el tiempo de inactividad)? Gracias, Robert

¿Fue útil?

Solución

Creo que puse la respuesta aquí. Lo que encontré fue que haciendo esto:     setTimeout ('frm.submit ();', 2000); provocó que la página se volviera a cargar pero no envió el formulario. Cuando hice esto:     frm.submit (); El formulario fue enviado y los datos fueron pasados. No sé por qué la primera forma no funcionó, pero no necesito saber eso :)

Otros consejos

¿Podría el servidor anular los valores de entrada? Indica si tu página en el servidor tiene este aspecto:

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

Creo que anulará el campo. O esto la acción del servidor podría estar configurándolo indirectamente. En JSF, algo como esto.

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

¿Qué tiene en el servidor y qué es su navegador?

Intentaría capturar la solicitud de publicación HTML para ver si los campos de entrada están incluidos. Si lo están, su servidor tiene un problema.

Pero con respecto a lo que dijiste, creo que es porque hay un conflicto en la forma en que tu navegador maneja JavaScript DOM. Este puede ser el caso si omite el botón de envío en su formulario y funciona.

El método submit de los objetos HTMLFormElement debería enviar el formulario, como si el usuario hubiera hecho clic en el botón enviar. Entonces, si el atributo action del formulario se establece en # , parecería que actualiza la página, ya que está enviando los datos del formulario al mismo página.

Es extraño que todavía lo haga cuando configura el atributo de acción en otra página.

¿El atributo method del formulario está configurado en get o post ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top