Foros del Web » Programando para Internet » Javascript » Frameworks JS »

inconveniente con submit()

Estas en el tema de inconveniente con submit() en el foro de Frameworks JS en Foros del Web. Amigos tego esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" > < head ...
  #1 (permalink)  
Antiguo 11/06/2011, 17:17
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
inconveniente con submit()

Amigos tego esto:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Untitled Document</title>
  5. <script type="text/javascript" src="jquery.1.6.1.min.js"></script>
  6. <script language="javascript" type="text/javascript">
  7. // declaro que el documento se encuentra listo
  8. $.(document).ready(function() {
  9.     //remarco que se trata del id primero (mostrando los datos del primer fomrulario)
  10.     $('#primero').submit(function() {
  11.         //si los campos no se encuentran vacios
  12.         if($('#n').val() != '' && $.('#l').val() != '') {
  13.             //hago que el loader empiece a funcionar
  14.             $('.response').html('<img src="loading.gif" align="absmiddle">');
  15.         } else {
  16.             //si os campos no estan vacios le digo que deben rellenarlos
  17.             $('.response').text('Debe rellenar los campos').fadeIn(1000);
  18.         }
  19.     });
  20. });
  21. </head>
  22.  
  23. <form id="primero">
  24. Name: <input id="n" type="text" name="name" /> Lastname: <input id="l" type="text" name="lname" /> &nbsp; <input type="submit" name="Admitir" value="ir a paso 2" />
  25. <div class="response"></div>
  26. </form>
  27. </body>
  28. </html>

Y al parecer algo esty haciendo mal porque no me esta funcionando. lo que quiero hacer es:
si los campos input no estan rellenados aparecera el texto debe rellenar, de lo contrario mostrará la imagen cargando, lo pongo asi porque despues de mostrar la imagen cargando quiero hacer un ajax hacia un script php para validarlos datos con la bd, pero de momento solo quiero conseguir la primera parte, alguien sabe porque no me funciona??

Porfa, estoy desesperado, necesito ayuda en esto, tengo poca experianca en jquery, pero algo entiendo.

Gracias
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #2 (permalink)  
Antiguo 11/06/2011, 18:16
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: inconveniente con submit()

  1. Es $(document).ready() no $.(document).ready() (tenés el mismo error en las líneas 9 y 13).
  2. Debés hacer que tu función devuelva false si hay un error para que el envío del formulario se cancele (agregá "return false" luego de mostrar el mensaje "Debe rellenar los campos" o el formulario se enviará de todas formas.)
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 11/06/2011, 18:29
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: inconveniente con submit()

Cita:
Iniciado por Naahuel Ver Mensaje
  1. Es $(document).ready() no $.(document).ready() (tenés el mismo error en las líneas 9 y 13).
  2. Debés hacer que tu función devuelva false si hay un error para que el envío del formulario se cancele (agregá "return false" luego de mostrar el mensaje "Debe rellenar los campos" o el formulario se enviará de todas formas.)
Te lo agradezco muchisimo Naahuel

Ahora mira lo que hice, pero el div con la clase no se mantiene, porque?
Código Javascript:
Ver original
  1. // declaro que el documento se encuentra listo
  2. $(document).ready(function() {
  3.     //remarco que se trata del id primero (mostrando los datos del primer fomrulario)
  4.     $('#primero').submit(function() {
  5.         //declaro las variable para cada value
  6.         var n = $('#n').val();
  7.         var l = $('#l').val();
  8.         //si los campos no se encuentran vacios
  9.         if(n <= 1 && l <= 1) {
  10.             //hago que el loader empiece a funcionar
  11.             $('.response').html('<img src="loading.gif" align="absmiddle">');
  12.             //llamo al ajax
  13.         } else {
  14.             //si os campos no estan vacios le digo que deben rellenarlos
  15.             $('.response').text('Debe rellenar los campos');
  16.         }
  17.     });
  18. });
Código HTML:
Ver original
  1. <form id="primero">
  2. Name: <input id="n" type="text" name="name" /> Lastname: <input id="l" type="text" name="lname" /> &nbsp; <input type="submit" name="Admitir" value="Verificar" />
  3. <div class="response"></div>
  4. </form>
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #4 (permalink)  
Antiguo 11/06/2011, 18:40
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: inconveniente con submit()

Cita:
Iniciado por function Ver Mensaje
Ahora mira lo que hice, pero el div con la clase no se mantiene, porque?
Cita:
Iniciado por Naahuel Ver Mensaje
  1. Debés hacer que tu función devuelva false si hay un error para que el envío del formulario se cancele (agregá "return false" luego de mostrar el mensaje "Debe rellenar los campos" o el formulario se enviará de todas formas.)
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 11/06/2011, 18:50
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: inconveniente con submit()

Cita:
Iniciado por Naahuel Ver Mensaje
UUPPPPSSSS!!!!!

Me siento se acostumbra uno tanto a leer entre lineas y rapido que se me olvida poner atención a los expertos. Te agradezco tu ayuda. Mira como lo hice
Código Javascript:
Ver original
  1. // declaro que el documento se encuentra listo
  2. $(document).ready(function() {
  3.     //remarco que se trata del id primero (mostrando los datos del primer fomrulario)
  4.     $('#primero').submit(function() {
  5.         //declaro las variable para cada value
  6.         var n = $('#n').val();
  7.         var l = $('#l').val();
  8.         //si los campos no se encuentran vacios
  9.         if(n != 0 && l != 0) {
  10.             //hago que el loader empiece a funcionar
  11.             $('.response').html('<img src="loading.gif" align="absmiddle">');
  12.             return false;
  13.             //llamo al ajax
  14.         } else {
  15.             //si os campos no estan vacios le digo que deben rellenarlos
  16.             $('.response').html('Debe rellenar los campos');
  17.             return false;
  18.         }
  19.     });
  20. });
Código HTML:
Ver original
  1. <form id="primero" method="post">
  2. Name: <input id="n" type="text" name="name" /> Lastname: <input id="l" type="text" name="lname" /> &nbsp; <input type="submit" name="Admitir" value="Verificar" />
  3. <div class="response"></div>
  4. </form>

Agradezco mucho tu ayuda
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #6 (permalink)  
Antiguo 11/06/2011, 21:32
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: inconveniente con submit()

está perfecto :) Pero tené en cuenta que "return" implica que la función debe terminar y veo que lo has puesto donde deberías hacer tu pedido con ajax. Ahí no debe ir, pues no se ejecutará lo que continúa luego del return.


espero esté claro :)
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 12/06/2011, 12:07
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: inconveniente con submit()

Cita:
Iniciado por Naahuel Ver Mensaje
está perfecto :) Pero tené en cuenta que "return" implica que la función debe terminar y veo que lo has puesto donde deberías hacer tu pedido con ajax. Ahí no debe ir, pues no se ejecutará lo que continúa luego del return.


espero esté claro :)
Si te entiendo
pero aun no hago el ajax, asi que deberé poner return false para que el formulario no se ejecute, como dijiste, cierto?, es mas me esta funcionando de maravilla. Voy a poner el ajax y te cuento, gracias nuevamente
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #8 (permalink)  
Antiguo 12/06/2011, 18:57
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 15 años, 4 meses
Puntos: 66
Respuesta: inconveniente con submit()

lo que te dicen es que lo que coloques debajo del "return false" no se va a ejecutar, creo que como de igual manera cancelas el submit del formulario hagas algo asi:

Código Javascript:
Ver original
  1. $('#primero').submit(function(ev) {
  2.         ev.preventDefault();//cancelo el envio del formulario
  3.         //declaro las variable para cada value
  4.         var n = $('#n').val();
  5.         var l = $('#l').val();
  6.         //si los campos no se encuentran vacios
  7.         if(n != 0 && l != 0) {
  8.             //hago que el loader empiece a funcionar
  9.             $('.response').html('<img src="loading.gif" align="absmiddle">');
  10.             //llamo al ajax
  11.         } else {
  12.             //si os campos no estan vacios le digo que deben rellenarlos
  13.             $('.response').html('Debe rellenar los campos');
  14.         }
  15.     });
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D

Etiquetas: javascript, jquery
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 09:10.