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

como acceder a los valores de un select con this

Estas en el tema de como acceder a los valores de un select con this en el foro de Frameworks JS en Foros del Web. Hola comunidad, se como acceder a los valores de un select con javascript puro, pero queria saber como traducirlo a jquery: El select en html ...
  #1 (permalink)  
Antiguo 26/07/2011, 16:28
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
como acceder a los valores de un select con this

Hola comunidad, se como acceder a los valores de un select con javascript puro, pero queria saber como traducirlo a jquery:
El select en html es
Código HTML:
Ver original
  1. <select name="seEsp" onchange="changed(this);" id="selFalEsp">
  2. <option value="0">Seleccione</option>
  3. <option value="4">Obra de Arte</option>
  4. <option value="5">Soldador</option>

Código Javascript:
Ver original
  1. function changed(){
  2.     aa = document.formEsp.seEsp.selectedIndex;
  3.     asf = document.formEsp.seEsp.options[aa].text;
  4.     alert("Id es = "+aa+ " y el texto es = "+asf);
  5. }

Asi es como lo intente y funciona a medias, porque text me muestra todos los texto que tengo en el option:
Código Javascript:
Ver original
  1. function changed(){
  2. aa =     $("#selFalEsp").val();
  3. asf =  $("#selFalEsp").text();
  4. alert("Id es = "+aa+ " y el texto es = "+asf);
  5. }

pero queria saber si esto lo puedo conseguir con this, porque estoy enviando this. Y ya lo intente pero no me sale -> onchange="changed(this);".
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #2 (permalink)  
Antiguo 26/07/2011, 17:15
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: como acceder a los valores de un select con this

Pues para "pasarlo" mejor a jQuery yo le quitaría el atributo "onchange" al select y lo haría así:

Código Javascript:
Ver original
  1. $(function(){
  2.     $('select').change(function(){
  3.         //hacer algo
  4.     });
  5. });

Claro que el selector ('select') lo podemos cambiar por algo más específico si no queremos seleccionar todos los <select> de la página.

Respecto a tu pregunta, te recomiendo que leas la documentación de jQuery ante cualquier duda de qué exactamente hace cada método.

.val() es para elementos de formulario (inputs, selects, textareas, etc). Devuelve el valor que tiene ese elemento. En el caso del select, devolvería el valor del atributo "value" de la opción que está seleccionada o su texto, de no tener dicho atributo. Mirá este ejemplo:


Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  3. <meta charset=utf-8 />
  4. <title>JS Bin</title>
  5. $(function(){
  6.     $('select').change(function(){
  7.           alert('Valor: ' + $(this).val());
  8.     });
  9. });
  10.   </script>
  11. </head>
  12. <select id="Hola">
  13.   <option>Op 1</option>
  14.   <option value="2">Op 2</option>
  15.   <option>Op 3</option>
  16.   <option>Op 4</option>
  17.   <option>Op 5</option>
  18.   </select>
  19. </body>
  20. </html>

Observá que la única opción con atributo value es la 2, por lo que si la seleccionás obtendrás un "2" en el alert, pero no así con los demás.

Eso sería todo lo que necesitás, no hace falta que obtengas el "selected-index".
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 26/07/2011, 18:00
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
Respuesta: como acceder a los valores de un select con this

Cita:
Iniciado por Naahuel Ver Mensaje
Código Javascript:
Ver original
  1. $(function(){
  2.     $('select').change(function(){
  3.         //hacer algo
  4.     });
  5. });
Hola gracias por tu respuesta, mira yo intente hacer lo que me dice, pero no se porque no me funciona, pasa que este select lo genero luego de una llamada $.ajax y con una funcion coloco el select al documento original dentro de un div. Supongo que por eso no me funciona.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #4 (permalink)  
Antiguo 26/07/2011, 18:02
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: como acceder a los valores de un select con this

Claro, si el select es agregado al dom no tendrá la función asginada al evento onchange. Probá esto:

Código Javascript:
Ver original
  1. $('#idDelDiv').delegate('select','change',function(){
  2.         //hacer algo
  3.     });

Reemplazá #idDelDiv por un selector para tu div que contiene el select.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 27/07/2011, 08:32
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
Respuesta: como acceder a los valores de un select con this

gracias Naahuel, probe lo que me recomendo pero nada, lo unica forma como me funciona es hacerlo con onchange como coloque arriba.

lo intente así:
Código Javascript:
Ver original
  1. $('#selFalEsp').delegate('select','change',function(){
  2.        alert('hoal');
  3.     });
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #6 (permalink)  
Antiguo 27/07/2011, 09:28
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: como acceder a los valores de un select con this

No no, "selFalEsp" no es el ID del selct? Para delegate necesitás usar el ID del padre. Supongamos que tenés algo así:

Código HTML:
Ver original
  1. <div id="divPadre">
  2.     <select id="selFalEsp">
  3.         <option value="A">Item A</option>
  4.         <option value="B">Item B</option>
  5.         <option value="C">Item C</option>
  6.     </select>
  7. </div>

Entonces tendrías que poner esto:

Código Javascript:
Ver original
  1. $('#divPadre').delegate('#selFalEsp','change',function(){
  2.    alert('hoal');
  3. });

Se entiende?
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 28/07/2011, 08:52
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
Respuesta: como acceder a los valores de un select con this

Muchas gracias, no conocia a delegate, me ayudo mucho.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Etiquetas: jquery, select
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 08:20.