Foros del Web » Programando para Internet » Jquery »

manejo de formularios con jQuery

Estas en el tema de manejo de formularios con jQuery en el foro de Jquery en Foros del Web. En primer lugar saludo a toda la comunidad, les comento que soy nuevo en el mundo de jQuery he estado leyendo mucho sobre esta libreria ...
  #1 (permalink)  
Antiguo 17/08/2012, 19:48
Avatar de MrH2  
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Mensaje manejo de formularios con jQuery

En primer lugar saludo a toda la comunidad, les comento que soy nuevo en el mundo de jQuery he estado leyendo mucho sobre esta libreria y me decidi a usarla.
Me gustaria me ayudaran con el siguiente código. tengo una pagina en la cual listo una serie de usuarios a traves de un bucle y al lado de los nombre inserto 3 iconos, 1 para editar, otro para borrar y otro para cambiar el pass. el HTML seria el siguiente:


Código HTML:
<form  method="POST" enctype="multipart/form-data">
<input name="formCtrl" id="formCtrl" type="hidden" value="xx">
<input name="pid" id="pid" type="hidden" value="user1">
<a href="editar" class="btnForm" ><div class="editar"></div></a>
<a href="borrar" class="btnForm" ><div class="borrar"></div></a>
<a href="cambiar" class="btnForm" ><div class="cambiar"></div></a>
</form>
<form  method="POST" enctype="multipart/form-data">
<input name="formCtrl" id="formCtrl" type="hidden" value="xx">
<input name="pid" id="pid" type="hidden" value="user2">
<a href="editar" class="btnForm" ><div class="editar"></div></a>
<a href="borrar" class="btnForm" ><div class="borrar"></div></a>
<a href="cambiar" class="btnForm" ><div class="cambiar"></div></a>
</form>
<form  method="POST" enctype="multipart/form-data">
<input name="formCtrl" id="formCtrl" type="hidden" value="xx">
<input name="pid" id="pid" type="hidden" value="user3">
<a href="editar" class="btnForm" ><div class="editar"></div></a>
<a href="borrar" class="btnForm" ><div class="borrar"></div></a>
<a href="cambiar" class="btnForm" ><div class="cambiar"></div></a>
</form> 
Luego utilizo el siguiente script para capturar los click en los diferentes iconos.

Código HTML:
$(document).ready(function(){ 
$('a.btnForm').click(function(e) {
	e.preventDefault();
	var acc = $(this).attr("href");
	$('#formCtrl').attr("value",acc);
	$(this).parents().get(0).submit();
	});
})
La explicacion de lo que pretendo hacer es: que al dar click en un icono cambio el atributoo del campo ctrlForm ya se por editar, borrar o cambiar y luego envio el form. Al recibir los datos por POST en base a los valores de formCtrl y pid ejecuto las correspondientes funciones de PHP.

El inconveniente que tengo es que el script solo me funciona con la primera linea, o sea con el primer form.
en los restante no realiza el cambio de atributo de formCtrl, agredeceria me hagan notar mi error y/o me sugieran una mejor manera de hacer lo que pretendo.

Desde ya Muchas Gracias
  #2 (permalink)  
Antiguo 18/08/2012, 09:10
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago de Surco, Lima - Perú
Mensajes: 266
Antigüedad: 12 años, 9 meses
Puntos: 57
Información Respuesta: manejo de formularios con jQuery

Hola MrH2, que tal. Bienvenido al foro.

Déjame decirte que estas haciendo mal uso de algunos atributos, como tambien el uso innecesario de elementos.
  1. No es necesario incluir un <div> dentro de un <a>.
  2. El atributo href del elemento <a> debe contener un vinculo hacia algun destino o en su defecto #. (Atributos <a>)
  3. El valor del id de cualquier elemento debe ser unico en todo el documento. Para enviar datos de un formulario basta con el atributo name.
Despues de esas pequeñas correciones, puedes probar el siguiente ejemplo que preparé
Código Javascript:
Ver original
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Documento sin título</title>
  6. <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
  7. <script>
  8. $(document).on('ready',function() {
  9.     $('#myList').on('click','a.btnForm',function(e){
  10.         e.preventDefault();
  11.         var action = $(this).attr('rel');
  12.         $(this).parent('form').find('input[name=formCtrl]').attr('value',action);
  13.     });
  14. });
  15. </script>
  16. </head>
  17. <body>
  18. <input type="button" id="add" value="add new form">
  19. <div id="myList">
  20.     <form method="POST" enctype="multipart/form-data">
  21.         <input name="formCtrl" type="hidden" value="not">
  22.         <input name="pid" type="hidden" value="user1">
  23.         <a class="btnForm" rel="edit" href="#">editar</a>
  24.         <a class="btnForm" rel="delete" href="#">eliminar</a>
  25.         <a class="btnForm" rel="change" href="#">cambiar</a>
  26.     </form>
  27.     <form method="POST" enctype="multipart/form-data">
  28.         <input name="formCtrl" type="hidden" value="not">
  29.         <input name="pid" type="hidden" value="user1">
  30.         <a class="btnForm" rel="edit" href="#">editar</a>
  31.         <a class="btnForm" rel="delete" href="#">eliminar</a>
  32.         <a class="btnForm" rel="change" href="#">cambiar</a>
  33.     </form>
  34. </div>
  35. </body>
  36. </html>
El evento click responde a todos los formularios que se agreguen dinamicamente con sus respectivos controles.
Atento a la linea 12, es la encargada de modificar el valor del elemento con name="formCtrl"
El código esta bastante simple; coméntanos cualquier duda, cambios y finalmente como lo implentaste

Última edición por gebremswar; 18/08/2012 a las 09:23
  #3 (permalink)  
Antiguo 18/08/2012, 20:20
Avatar de MrH2  
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo Respuesta: manejo de formularios con jQuery

Cita:
Iniciado por gebremswar Ver Mensaje
Hola MrH2, que tal. Bienvenido al foro.
Gracias gebremswar

Te agradesco me hayas hecho notar los errores, agradesco y valoro las correcciones y te comento que el código me funciono perfecto, solo tuve que agregar una linea para enviar el formulario.

Por otra parte los DIV vacios los uso para reemplazar los textos que me propones en el código por imagenes y algunos efectos con CCS.

Una ves mas... Muchas Gracias.

Etiquetas: html, javascript, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:31.