2012-09-15 9 views
5

Tengo un campo de entrada con ancho variable como small, large, medium. Tengo un estilo de CSS para eso.Cómo establecer el recuadro de selección del valor seleccionado

Ejemplo:

case 1: <input type="text" id="a1" class="title small required" /> 
case 2: <input type="text" id="a1" class="title medium" /> 
case 3: <input type="text" id="a1" class="title large required" /> 

Mientras tanto, tengo una caja select:

<select id="b1"> 
    <option value="small">Small</option> 
    <option value="medium">Medium</option> 
    <option value="large">Large</option> 
</select> 

lo que necesito ahora es comprobar el campo input tiene clase de small o medium o large y para establecer el caja relevante select como selected. En jQuery he establecido directamente los valores seleccionados como medium, pero aun así el desplegable muestra small.

¿Cómo puedo comprobar si el campo input tiene alguna de estas clases utilizando la función hasClass()? ¿Podemos verificar esto a la vez?

+0

En jquery, ¿cómo comprobar si el campo de entrada tiene alguna de las tres clases "pequeña" o "mediana" o "grande"? usando hasClass() podemos verificar uno a la vez. – kamala

Respuesta

3

Utilice esta

$('#b1').val("small"); // to set small as selected 

$('#b1').val("medium"); 

$('#b1').val("large"); 

Utilice .hasClass() para el próximo.

var size = $("#al").hasClass('small')? 'small': 
    ($("#a1").hasClass('medium')? 'medium' : 
    ($("#a1").hasClass('large')? large :' null')); 
alert(size); 
3

"En jQuery he puesto directamente los valores seleccionados como 'medio', pero aún así el desplegable muestra pequeña"

Usted no se presenta el código de jQuery, pero permite establecer el valor del elemento de selección con id="1" que haría esto:

$("#1").val("medium"); // or, obviously, use a variable instead of "medium" 

Pero en tu caso que ha utilizado id="1" tanto para el selecto y el campo de entrada, que es hTML no válido - id debe ser único. En la mayoría de los buscadores, al seleccionar por una identificación que está duplicada, simplemente seleccionará el primer elemento con esa identificación.

Cambie el id sy actualice su jQuery para que coincida y debería funcionar bien. (Si eso no funciona, por favor, actualice su pregunta para mostrar realmente su código JS y podemos proporcionar más ayuda.)

+1

sí esto funciona .. – kamala

+0

En jquery, ¿cómo comprobar si el campo de entrada tiene alguna de las tres clases "pequeña" o "media" o "grande"? usando hasClass() podemos verificar uno a la vez. – kamala

+0

Dado que el campo también podría tener otras clases, probablemente sea mejor verificarlas de una en una con '.hasClass()' (como se muestra en la respuesta de Baz1nga). ¿Tu código original del mundo real tenía atributos de identificación duplicados?Si es así, por favor no edite su pregunta para hacerla única porque entonces las respuestas no tienen sentido. (Si fue solo un error tipográfico en la pregunta original, por supuesto, debe editarlo). – nnnnnn

2

en primer lugar id tiene que ser único en una página html

En primer lugar elegir un selector de seleccionar el elemento de entrada correctamente .. estoy usando el selector de clase título desde su allí en todos los casos

var selectedOption=""; 
if($('.title').hasClass('small')) 
{ 
    selectedOption='small'; 
} 
else if($('.title').hasClass('medium')) 
{ 
    selectedOption='medium'; 
} 
else 
{ 
    selectedOption='large'; 
} 

//i am assuming you have only one select on your page, else replace it with id selector 
$("select option[value="+selectedOption+"]")).prop('selected','true'); //setting the correct option as selected 
Cuestiones relacionadas