Estoy usando jQuery para leer datos en una página HTML. En esa página, tengo un elemento <form>
que contiene algunas etiquetas <input>
para que el usuario ingrese sus valores.
Al inicializarse, este formulario tiene algunos valores predeterminados para esos elementos <input>
. Cuando envío este formulario, utilizo el método html()
para obtener la cadena HTML del estado actual de esta página, pero no sé por qué esta cadena de resultados todavía contiene valores antiguos (valores de entrada predeterminados), no los nuevos.
¿Hay alguna forma de actualizar o persistir el valor ingresado por el usuario a esos elementos <input>
antes de llamar al html()
? ¿Cómo puedo obtener la cadena que contiene el valor más nuevo mediante el uso de métodos jQuery?
¡Muchas gracias!jQuery: función html() obtener datos antiguos en el formulario
Respuesta
Sin embargo, es extraño lo que estás tratando de hacer, pero todo lo que necesitas es actualizar el atributo de valor de los elementos del formulario. Se puede hacer con el siguiente código (ponerlo en el controlador de formulario submit
):
$("form input").attr("value", function() {
return this.value;
});
Muchas gracias. En realidad, tu sugerencia no me ayudó a resolver este problema, pero me dio una pista para seguir. Probé la demostración que creó en jsfiddle, funcionó con jQuery 1.7.1, pero cuando la reduje a 1.5.2, provocó el error^_ ^. Así que creo que tal vez haya algo misterioso en jQuery 1.5.2 que lo investigaré más a fondo. Apliqué tu pista a otra forma: '$ (" entrada de formulario ").attr ("defaultValue", function() { return this.value; }); ' ¡y funcionó muy bien! –
Por defecto, la función jQuery html()
preservará la defaultValue
y defaultChecked
propiedades en lugar de utilizar los valores/selecciones actuales (como lo hace JavaScript innerHTML
). Para evitar esto, primero debe usar jQuery prop()
: Read the Documentation on prop().
Por ejemplo, teniendo en cuenta el código:
<form action='/'>
<input type='radio' value='1' checked name='first' />
<input type='radio' value='2' name='first' />
<input type='checkbox' value='yes' />
<input type='text' value='Start Text' name='second' />
</form>
continuación
$('form').html()
de SIEMPRE salida que código exacto, independientemente de los valores que se haya agregado/seleccionado/modificada.
Para remediar eso, basta con ejecutar una función para convertir los valores del elemento de propiedades:
$("form input[type='radio']").each(function(){
if (this.checked){
$(this).prop("defaultChecked",true);
} else {
$(this).prop("defaultChecked",false);
}
});
$("form input[type='checkbox']").each(function(){
if (this.checked){
$(this).prop("defaultChecked",true);
} else {
$(this).prop("defaultChecked",false);
}
});
$("form input[type='text']").each(function(){
$(this).prop("defaultValue",$(this).val());
});
alert($(form).html()); //or var the_code = $(form).html();
Ahora tendrá el código HTML como su estado de página actual está mostrando la misma.
El bit área de texto es un poco diferente si estuviera buscando la manera de hacer eso tipo de elemento:
$("textarea").html(function() {
return this.value;
});
- 1. localStorage.getItem devuelve datos antiguos en IE 9
- 2. Pasar datos de formulario HTML a Javascript Función
- 3. jQuery datos de formulario POST
- 4. Cómo obtener datos de formulario como un objeto en jquery
- 5. jquery obteniendo datos del formulario
- 6. Pase el formulario completo como datos en la función jQuery Ajax
- 7. obtener el código HTML con jQuery auto
- 8. Datos JQuery rellenos previamente en html
- 9. obtener datos de solicitud en Django formulario
- 10. Copia de formulario a formulario en jQuery
- 11. jQuery OBTENER html como objeto jQuery transitable
- 12. Técnicas para eliminar datos antiguos en bases de datos Oracle
- 13. obtener html de url externo en jquery
- 14. jQuery - Obtener valores de formulario para ajax POST
- 15. jQuery obtener ESTE formulario de entrada
- 16. jquery - Cómo obtener datos xml
- 17. Prellene el formulario con jQuery
- 18. Gráfico de compatibilidad de navegador HTML 5: ¿HTML 5 en navegadores antiguos?
- 19. Función de devolución de llamada para jQuery .html()?
- 20. Recuperando atributos de datos HTML usando jQuery
- 21. Jquery envíe el formulario
- 22. Obtener en formato JSON en el formulario HTML presentar, junto con la POST HTTP
- 23. Jquery obtener datos sobre el error XHR
- 24. ¿Cómo se sobrescribe un formulario html existente para usar jquery para publicar el formulario?
- 25. ¿Enviar datos POST a PHP sin usar un formulario HTML?
- 26. JQuery-UI ordenable en el formulario enviar
- 27. jQuery .delay() no retrasa la función .html()
- 28. Obtenga los datos de respuesta en la función jQuery ajaxComplete
- 29. jQuery - obtener elementos de formulario por identificador de contenedor
- 30. obtener elementos html array con jquery
dónde está su código ..! –
¿Por qué necesita * obtener la cadena HTML del estado actual de esta página *? – VisioN
¿Por qué está utilizando html para obtener toda la página, parece extraño. Debería poder seleccionar todos los valores del formulario usando serializar si eso es lo que está buscando. –