Foros del Web » Programando para Internet » Javascript »

button o submit

Estas en el tema de button o submit en el foro de Javascript en Foros del Web. Que suele ser más conveniente elegir? Un input tipo button y definir yo con javascript su funcionalidad. O usar un tipo submit. Es que tengo ...
  #1 (permalink)  
Antiguo 22/03/2011, 08:16
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 11 años, 8 meses
Puntos: 0
button o submit

Que suele ser más conveniente elegir? Un input tipo button y definir yo con javascript su funcionalidad. O usar un tipo submit.

Es que tengo un formulario y quiero que cuando se pulse en un botón (button o submit) primero me valide el form. Si está bien, que haga una segunda función.Y si también está bien, entonces envie los datos mendiante POST al php.

Pero el paso de parametros lo queria hacer asincrono...y me estoy liando la verda nose cual elegir.

Un saludo!
  #2 (permalink)  
Antiguo 22/03/2011, 08:30
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 17 años, 1 mes
Puntos: 79
Respuesta: button o submit

con un button en la funcion solo debes colocar

formulario.action="pagina" //si quieres cambiar la pagina
formulario.submit()

y va en el onclick



en un submit en cambio va en el onsubmit del formulario para prevalidar y te toma por defecto el Enter, ademas en la funcion le puedes colocar que te valide los datos del form en caso contrario return false...

no recuerdo si es onsubmit="return funcion()" o simplemente onsubmit="funcion()"

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 22/03/2011, 08:55
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: button o submit

Creo q no me explique bien :)

El evento que me activa/desencadena la funcion de un submit/button/image se cuales son.

Mi duda es, para pasar datos de manera asincrona cual es mejor.
Yo lo que tengo entendido es que si usas un submit, tengo que tener definido los atributos method y accion en el form. Y no sabria hacerlo de manera asincrona.
Mientras que si lo hago con un button, con el javascript pongo

Código:
$("button").click(function(){
$.post("pagina.php",{datos},function(respuesta){ });
});
Y listo :) pero ya nose que manera es mejor.
  #4 (permalink)  
Antiguo 22/03/2011, 11:28
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 17 años, 1 mes
Puntos: 79
Respuesta: button o submit

hay veces que un ejemplo habla mas que mil palabras
create un archivo php y le pegas esto....ahi veras el comportamiento

Código PHP:
Ver original
  1. Formulario 1 (cons submit)
  2. <form name="form1" onsubmit="return enviar1()">
  3.   <input type="text" name="t1" id="t1">
  4.   <input type="submit" name="bf1_1" id="bf1_1" value="Enviar GET" onclick="o=0">
  5.   <input type="submit" name="bf1_2" id="bf1_2" value="Enviar POST" onclick="o=1">
  6. </form>
  7. <hr>
  8. Formulario 2 (cons button)
  9. <form name="form2">
  10.   <input type="text" name="t2" id="t2">
  11.   <input type="button" name="bf2_1" id="bf2_1" value="Bot&oacute;n GET" onclick="enviar2(0)">
  12.   <input type="button" name="bf2_2" id="bf2_2" value="Bot&oacute;n POST" onclick="enviar2(1)">
  13. </form>
  14.  
  15. <script>
  16. var o
  17. var formulario1=document.form1;
  18. var texto1=document.getElementById("t1");
  19.  
  20. var formulario2=document.form2;
  21. var texto2=document.getElementById("t2");
  22.  
  23. function enviar1(){
  24.     if(!texto1.value){
  25.         alert("ingrese algo en el texto 1");
  26.         return false;
  27.     }
  28.     if(o==0){
  29.         formulario1.method="get";
  30.         formulario1.action="index.php";
  31.     }else if(o==1){
  32.         formulario1.method="post";
  33.         formulario1.action="index.php";
  34.     }
  35. }
  36.  
  37. function enviar2(o){
  38.     if(!texto2.value){
  39.         alert("ingrese algo en el texto 2");
  40.         return false;
  41.     }
  42.     if(o==0){
  43.         formulario2.method="get";
  44.         formulario2.action="index.php";
  45.     }else if(o==1){
  46.         formulario2.method="post";
  47.         formulario2.action="index.php";
  48.     }
  49.     formulario2.submit();
  50. }
  51.  
  52. </script>
  53. <hr />
  54. <h1>Resultados</h1>
  55. <?
  56. echo "valor submit GET Formulario 1: ".htmlentities($_GET["t1"])."<br>";
  57. echo "valor submit POST Formulario 1: ".htmlentities($_POST["t1"])."<br>";
  58. echo "valor submit GET Formulario 2: ".htmlentities($_GET["t2"])."<br>";
  59. echo "valor submit POST Formulario 2: ".htmlentities($_POST["t2"])."<br>";
  60.  
  61. ?>

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #5 (permalink)  
Antiguo 22/03/2011, 12:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: button o submit

Ok muchas gracias! ;)
  #6 (permalink)  
Antiguo 22/03/2011, 15:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 20 años, 2 meses
Puntos: 1284
Respuesta: button o submit

Hola:

Siempre, siempre, con botones tipo submit, y en el actión un destino que valide en el servidor, luego, si quieres hacerlo asincrono le añades:

onsubmit="return envio_asincrono(this)"; y en ese envío cancelarlo con return false después de esa llamada ajax.

Las razones son simples, el formulario es accesible porque se puede tener javascript desactivado.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 22/03/2011, 16:32
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: button o submit

Gracias :)

Etiquetas: submit
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 22:34.