Retroceder   Foros del Web > Programación para sitios web > Javascript > Frameworks

Respuesta
 
Herramientas Desplegado
Antiguo 26-oct-2008, 11:11   #1 (permalink)
Gerifaltus está en el buen camino
 
Avatar de Gerifaltus
 
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 163
Cómo detectar un input con jquery

Hola que tal;

Bien, pues esa es la pregunta, estoy comenzando a usar este framework y me he encontrado con el detalle de no dar con la función/metodo para detectar un inputo específico y apartir de ahi que se ejecute un determinado código javascript (ajax)

Lo que tengo es esto, pero no funciona, es decir aunque el input en cuestion no existe en el HTML el código se ejecuta.

Código:
$(document).ready(function(){
    if($('#tmp_id_ciudad')){
		var valorCiudad = $('#tmp_id_ciudad').attr('value'); 
		var valorEstado = $('#Estado').attr('value');
......
.....
....
    }
}
Lo que yo hacia cuando no usaba Jquery, era esto

Código:
if(getElementById('id_elemento')){
var elemento = getElementById('id_elemento');
....
....
....
}
Saludos :)
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
Gerifaltus está desconectado   Responder Citando
Antiguo 26-oct-2008, 14:53   #2 (permalink)
venkman llegará a ser famoso muy prontovenkman llegará a ser famoso muy pronto
 
Avatar de venkman
 
Fecha de Ingreso: enero-2008
Mensajes: 740
Respuesta: Cómo detectar un input con jquery

El asunto es que $() no devuelve lo mismo que getElementById() porque tampoco hace lo mismo.

$() puede devolver, según los parámetros que le pases, varios objetos correspondientes a elementos del DOM. Por ejemplo podrías pedirle todos los input con $("INPUT") y entonces te devolvería todos los que hubiera. Así que, para contemplar esto de una forma más consistente. $ siempre te devuelve un array, incluso cuando te devuelve un sólo objeto. Más aún, te devuelve un array inclusocuando no se ha encontrado ningún objeto en absoluto.

¿Cómo podrías hacer lo mismo que quieres hacer tú, comprobar si hay o no hay ese input?

La primera opción sería:
Código javascript:
Ver originalCopiar
  1. if ($('#tmp_id_ciudad').length > 0) {
  2.     valorCiudad = $('#tmp_id_ciudad').val();
  3.     valorEstado = $('#Estado').val();
  4. //...
  5. }

Es decir, compruebas si la longitud del array que te devuelve es mayor que cero, si hay alguno.


Pero hay una opción mejor. Más elegante, limpia y sencilla. No compruebes si está o no. Simplemente haz lo que quieras hacer. Quiero decir, si haces por ejemplo $('#tmp_id_ciudad').show() esto no te dará error, ni siquiera cuando no exista el elemento en cuestión.

SI lo que quieres es coger el valor de un campo, cógelo. Si no existe el campo te devolverá undefined, pero no dara error. Y para que no te dé undefined, simplemente pon un valor por defecto.

Código javascript:
Ver originalCopiar
  1. valorCiudad = $('#tmp_id_ciudad').val() || 0;
  2. valorEstado = $('#Estado').val() || 0;


( Y, por cierto, que para coger el valor de un elemento de input, mejor utiliza val() )
venkman está desconectado   Responder Citando
Antiguo 26-oct-2008, 15:13   #3 (permalink)
Gerifaltus está en el buen camino
 
Avatar de Gerifaltus
 
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 163
Respuesta: Cómo detectar un input con jquery

Gracias mi estimado Venkman, probaré la solución que me has dado y te cuento como me fue.

Por cierto no conocia la funcion "val", estuve analizando un chuletario de jquery y "creo que no vi val()" y me fui por la función que estuviera más cerca de recuperar el valor de un elemento.

Saludos y nuevamente gracias :)
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
Gerifaltus está desconectado   Responder Citando
Antiguo 31-oct-2008, 21:18   #4 (permalink)
Gerifaltus está en el buen camino
 
Avatar de Gerifaltus
 
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 163
Respuesta: Cómo detectar un input con jquery

Que tal, no había podido contestar por que tenia mucho trabajo, bueno ahora ya no tengo trabajo jejee.

Mi estimado Venkman, probé la solución que me diste y sí funcionó, lo dejé con la segunda opción que me indicaste

Código:
      valorCiudad = $('#tmp_id_ciudad').val() || 0;
      valorEstado = $('#Estado').val() || 0;
Gracias :)

Saludos.
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
Gerifaltus está desconectado   Responder Citando
Antiguo 01-nov-2008, 04:15   #5 (permalink)
venkman llegará a ser famoso muy prontovenkman llegará a ser famoso muy pronto
 
Avatar de venkman
 
Fecha de Ingreso: enero-2008
Mensajes: 740
Respuesta: Cómo detectar un input con jquery

Me alegro :)
venkman está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:51.
Políticas de Uso de Foros del Web


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96