2010-03-24 15 views
5

he el siguiente código:jQuery Mostrar un cuadro de texto Cuando se selecciona una opción

<select> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" /> 

Lo que quiero hacer es usando jQuery hacer que el texto de abajo oculto por defecto, y luego demostrar que si un usuario selecciona el otra opción del menú desplegable.

Respuesta

6
<select id="sel"> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" style="display: none;" /> 

$('#sel').change(function() { 
    $('#other').css('display', ($(this).val() == 'Other') ? 'block' : 'none'); 
}); 
+0

Aunque Cameron no le pidió a ocultar el cuadro de texto si se ha seleccionado ninguna otra opción ... – ScottE

+0

@ScottE: esto es cierto, pero yo estaría muy sorprendido si eso no es lo que pretende OP. –

+0

Este funciona muy bien gracias. – Cameron

1

Prueba esto:

<select id="selectbox_id"> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" /> 

JQuery:

$(function(){ 
    // hide by default 
    $('other').css('display', 'none'); 

    $('selectbox_id').change(function(){ 
    if ($(this).val() === 'Other') { 
    $('other').css('display', 'block'); 
    } 
}); 
}); 
+0

¿por qué votar abajo ...............? – Sarfraz

+0

No estoy seguro de por qué esto no fue votado. Funciona bien, excepto que hay un signo "=" adicional en la declaración "if". – jj2

9

No hay necesidad de ninguna css aquí.

$('#sel').change(function() { 
    var selected = $(this).val(); 
    if(selected == 'Other'){ 
     $('#other').show(); 
    } 
    else{ 
     $('#other').hide(); 
    } 
}); 
+0

nunca escuché a nadie decir "sin necesidad de css" antes. ¿Por qué demonios querrías evitar usar css? –

+0

@David Hedlund, ¿de qué sirve usar css para mostrar y ocultar elementos cuando jQuery tiene la funcionalidad incorporada? Supongo que si aún desea hacer cálculos con un ábaco, siga adelante, pero usar show/hide es mucho más elegante. – Gabe

+0

En realidad, encontré la respuesta de David Hedlund para ser más elegante. Si nos fijamos en el contenido presentado en Firebug, verá que la pantalla css se está utilizando debajo de las cubiertas de todos modos. – ScottE

Cuestiones relacionadas