Tengo un javascript que capta cambios en un formulario y luego llama a la función de envío regular del formulario. El formulario es un formulario GET (para una búsqueda) y tengo muchos atributos vacíos que aparecen en los parámetros. Lo que me gustaría hacer es eliminar todos los atributos vacíos antes de enviar, para obtener una URL más limpio: por ejemplo, si alguien cambia el 'sujeto' seleccionar a 'Inglés' i quieren que su URL búsqueda seaEliminar valores vacíos de los parámetros del formulario antes de enviarlo
http://localhost:3000/quizzes?subject=English
en lugar de
http://localhost:3000/quizzes?term=&subject=English&topic=&age_group_id=&difficulty_id=&made_by=&order=&style=
como lo está actualmente. Esto es solo con el propósito de tener una URL más limpia y más significativa para vincular y para los marcadores de las personas, etc. Por lo tanto, lo que necesito es algo en esta línea, pero esto no es correcto ya que no estoy editando la forma real sino un objeto JS hecha de parametros del formulario:
quizSearchForm = jQuery("#searchForm");
formParams = quizSearchForm.serializeArray();
//remove any empty fields from the form params before submitting, for a cleaner url
//this won't work as we're not changing the form, just an object made from it.
for (i in formParams) {
if (formParams[i] === null || formParams[i] === "") {
delete formParams[i];
}
}
//submit the form
creo que estoy cerca con esto, pero me falta el paso de la forma de editar los atributos de la forma real en lugar de hacer otro objeto y editar eso.
agradecido por cualquier consejo - max
EDITAR - SOLUCIONADO - gracias a las muchas personas que han publicado sobre este. Esto es lo que tengo, que parece funcionar perfectamente.
function submitSearchForm(){
quizSearchForm = jQuery("#searchForm");
//disable empty fields so they don't clutter up the url
quizSearchForm.find(':input[value=""]').attr('disabled', true);
quizSearchForm.submit();
}
¿Puedo decir, que está muy fresco su pensamiento de sus usuarios por el estilo. –
Buena pregunta y buenas respuestas: Tengo un gran formulario de búsqueda y la mayoría de las veces solo se llena un campo. Ahora las URL son mucho más cortas. – guettli