formulario serializar javascript (sin marco)
¿Me pregunto si existe una función en javascript sin jquery o algún marco que me permita serializar el formulario y acceder a la versión serializada?
Actualización 2023:
Usar FormData
:
const form = document.querySelector('form');
const params = new FormData(form);
const request = new XMLHttpRequest();
request.send(params);
Aunque parece funcionar sólo para POST
solicitudes.
Solo para navegadores modernos
Si apunta a navegadores que admiten la URLSearchParams
API ( navegadores más recientes ) y FormData(formElement)
el constructor ( navegadores más recientes ), use esto:
new URLSearchParams(new FormData(formElement)).toString()
En todas partes excepto IE
Para los navegadores que admiten URLSearchParams
pero no el FormData(formElement)
constructor, utilice este polyfill de FormData y este código (funciona en todas partes excepto en IE):
new URLSearchParams(Array.from(new FormData(formElement))).toString()
Ejemplo
Mostrar fragmento de código
Compatible con IE 10
Para navegadores aún más antiguos (por ejemplo, IE 10), utilice el polyfill FormData , un Array.from
polyfill si es necesario y este código:
Array.from(
new FormData(formElement),
function(e) { return e.map(encodeURIComponent).join('='); }
).join('&')
La biblioteca en miniatura de serialización no depende de un marco. Aparte de algo así, necesitarás implementar la función de serialización tú mismo. (aunque con un peso de 1,2 kilobytes, ¿por qué no usarlo?)