Foros del Web » Programando para Internet » Javascript »

porque no me funciona el button en mi form

Estas en el tema de porque no me funciona el button en mi form en el foro de Javascript en Foros del Web. Hola estoy intentando llamar a una funcion javascript al pulsar un input type button pero no me funciona no me muestra ningun error muestro el ...
  #1 (permalink)  
Antiguo 12/06/2012, 06:09
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
porque no me funciona el button en mi form

Hola estoy intentando llamar a una funcion javascript al pulsar un input type button pero no me funciona no me muestra ningun error muestro el input por si me podeis ayudar:


Código HTML:
Ver original
  1. <form method='post' action='comprobar' name='form'>
  2. <input type='text' name='edad'/>
  3. <input type='text' name='estado'/>
  4. <input type='button' name='comprobar' value='comprobar' onclick='comprobar(this.value)'/>
  5. </form>

Última edición por roboty; 12/06/2012 a las 06:32
  #2 (permalink)  
Antiguo 12/06/2012, 06:40
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: porque no me funciona el button en mi form

Cita:
Iniciado por roboty Ver Mensaje
Hola estoy intentando llamar a una funcion javascript al pulsar un input type button pero no me funciona no me muestra ningun error muestro el input por si me podeis ayudar:


Código HTML:
Ver original
  1. <form method='post' action='comprobar' name='form'>
  2. <input type='text' name='edad'/>
  3. <input type='text' name='estado'/>
  4. <input type='button' name='comprobar' value='comprobar' onclick='comprobar(this.value)'/>
  5. </form>
El JS está mal, pégalo aquí.
  #3 (permalink)  
Antiguo 12/06/2012, 06:53
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: porque no me funciona el button en mi form

Hola dontexplain el javascript hice algo muy basico para probar si era error de la funcion puse algo tan simple como:

el problema que estoy teniendo es que solo me muestra el valor del input con esta funcion por ejemplo
Código Javascript:
Ver original
  1. function comprobar(valores){
  2.       alert(valores);
  3. }

Última edición por roboty; 12/06/2012 a las 07:08
  #4 (permalink)  
Antiguo 12/06/2012, 07:20
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: porque no me funciona el button en mi form

el elemento this hace referencia al elemento que desencadena el evento, que en este caso es el botón, si usas this.value accederás al value del botón y no al de los demás elementos. Para acceder a tales elementos puedes simplemente

form.edad.value y form.estado.value

o también, usando this de referencia acceder al padre y de ahí a los nodos hijos

<input type='button' name='comprobar' value='comprobar' onclick='ad(this.parentNode)' >

Código Javascript:
Ver original
  1. function ad(t){
  2.   alert(t.childNodes[1].value);
  3.   alert(t.childNodes[3].value);
  4. }
  #5 (permalink)  
Antiguo 12/06/2012, 07:52
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: porque no me funciona el button en mi form

gracias por tu colaboracion dontexplain, pero ahora tengo otra duda, si tengo dos campos input tipo radio, como puedo recuperar el valor del campo selecionado y mostrarlo con un alert por ejemplo como en tu funcion que posteastes.

Saludos.
  #6 (permalink)  
Antiguo 12/06/2012, 08:03
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: porque no me funciona el button en mi form

Cita:
Iniciado por roboty Ver Mensaje
gracias por tu colaboracion dontexplain, pero ahora tengo otra duda, si tengo dos campos input tipo radio, como puedo recuperar el valor del campo selecionado y mostrarlo con un alert por ejemplo como en tu funcion que posteastes.

Saludos.
Los radios checkeados tienen la propiedad checked a true, los que no la mantienen a false.

Recuerda que los input radio con un mismo name se agrupan en un array de inputs radio, de modo que si hay dos inputs radio con el nombre "asd", el objeto "asd" son dos objetos.

Código Javascript:
Ver original
  1. inputs = formulario.radio;
  2. // con length se calcula el tamaño del array de inputs
  3. lengthinputs = inputs.length;
  4.  
  5. // se hace el bucle
  6.  
  7. for(i=0; i<=lengthinputs-1; i++){
  8.  
  9. // si el valor de cheked es true se escribe el valor
  10.  
  11. if(inputs[i].checked){
  12.  alert(inputs[i].value);
  13. }
  14.  
  15. }

Lo he escrito sin comprobar los errores, pero la idea es tal. La variable inputs contiene un array de dos objetos, al primer objeto se le accede por inputs[0], al segundo por inputs[1], etc. Si usas un bucle, puedes recorrer el objeto, ya que en inputs[x] la x irá creciendo (del 0 hasta donde especifiques). En cada iteración puedes comprobar si el valor de checked es true, como un if se ejecuta si el valor es true ni siquiera es necesario que hagas inputs[i]==true.

Un saludo.
  #7 (permalink)  
Antiguo 12/06/2012, 08:21
 
Fecha de Ingreso: junio-2012
Mensajes: 25
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: porque no me funciona el button en mi form

a mi me surgio una duda xDD, con el codigo que posteo el primero, igual no deberia generarse un alert que dijera "comprobar" que seria el value del boton??

edito: si lo hace, lo que pasaba era que el name del input era igual al nombre de la funcion le cambie el name al input y si me lanso la alerta con el value del boton, a lo mejor eso no fue lo que preguntaste pero ps quizas y si te sirva.

Última edición por Watafoc; 12/06/2012 a las 08:27
  #8 (permalink)  
Antiguo 12/06/2012, 08:33
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: porque no me funciona el button en mi form

Hola entonces como le paso el valor del campo radio como parametro a la funcion? referente a el ejemplo anterior que me pusistes no me funciono y no me da ningun error a que puede ser debido, saludos.
  #9 (permalink)  
Antiguo 12/06/2012, 08:49
 
Fecha de Ingreso: junio-2012
Mensajes: 25
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: porque no me funciona el button en mi form

en realidad creo que no tienes que pasarlo como parametro, creo que esto funcionaria no lo probe,

Código:
if (document.getElementById("el id del radio").checked)
{
//aqui estaria seleccionado
}
else
//aqui no estaria seleccionado
  #10 (permalink)  
Antiguo 12/06/2012, 08:50
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: porque no me funciona el button en mi form

Cita:
Iniciado por roboty Ver Mensaje
Hola entonces como le paso el valor del campo radio como parametro a la funcion? referente a el ejemplo anterior que me pusistes no me funciono y no me da ningun error a que puede ser debido, saludos.
Para la clase de trabajo que requieres no es necesario ni que pases ningún parámetro, pero si estás empeñado en lo del objeto this, como puse antes, puedes acceder a los nodos hijos, eso incluye los radios, si están dentro del form.

cuando haces this.parentNode pasas como parámetro el nodo padre, o sea el <form> y a partir de ahí, dentro de la función, mediante childnodes o con el name del elemento puedes acceder a los nodos hijos (todos los inputs que haya).

<form>
[textnode]
<input type="text">
<input type="text">
<input type="radio">
<button></button>
<input type="submit">
</form>

En rojo, el nodo PADRE, en verde, los nodos HIJOS. El textnode es el nodo de texto, si no hay texto el nodo permanece vacío, pero se referencia igualmente. Los inputs radio con el mismo nombre son un mismo nodo.

O sease

<form>
{[textnode]}

{<input type="text">}

{<input type="text">}

{<input type="radio" name="asd">
<input type="radio" name="asd">
}

{<button></button>}

{<input type="submit">}

</form>

Cada corchete separa un nodo distinto, igual que cada color.

Un ejemplo sencillo http://jsbin.com/edurov/edit#javascript,html,live

Última edición por dontexplain; 12/06/2012 a las 08:59
  #11 (permalink)  
Antiguo 12/06/2012, 08:59
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: porque no me funciona el button en mi form

Cita:
Iniciado por Watafoc Ver Mensaje
en realidad creo que no tienes que pasarlo como parametro, creo que esto funcionaria no lo probe,

Código:
if (document.getElementById("el id del radio").checked)
{
//aqui estaria seleccionado
}
else
//aqui no estaria seleccionado
me refiero en la funcion donde tengo que recuperar el valor del campo radio, no solo si es true o false.

de todas forma con lo que dijo el amigo dontexplain cree una funcion js que retornara simplemente dicho valor y asin le paso la funcion como parametro a la otra funcion.

auque le pase los parametros uno a uno a mi funcion y claro si tengo dos campos no pasa nada pero en realidad tengo mas campos, alguna idea de como pasarle los valores de los campos, saludos
  #12 (permalink)  
Antiguo 12/06/2012, 09:15
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: porque no me funciona el button en mi form

Cita:
Iniciado por roboty Ver Mensaje
me refiero en la funcion donde tengo que recuperar el valor del campo radio, no solo si es true o false.
if(radios[i].checked){
lo que tiene que pasar si es true
}


Cita:
Iniciado por roboty Ver Mensaje
auque le pase los parametros uno a uno a mi funcion y claro si tengo dos campos no pasa nada pero en realidad tengo mas campos, alguna idea de como pasarle los valores de los campos, saludos
Como ya expliqué antes, al acceder al nodo padre, que es form, puedes acceder a TODOS los elementos del formulario usando childnodes o el nombre.

elementopadre.nombreelemento ó elementopadre.childNodes[iddelelemento]

Etiquetas: funcion, input, formulario
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 13:35.