2011-08-18 3 views
7

J'essaie de vérifier avec jQuery si l'option de sélection avec la valeur = 1 est sélectionnée puis ajouter une classe à certains éléments. Mais quelque chose ne fonctionne pas. Pouvez-vous s'il vous plaît quelqu'un regarder le code?Option jQuery IF sélectionnée

Mon code:

Reservation <br/> 
<select id="rReservation" name="rReservation" class=""> 
           <option value="0">Maybe</option> 
           <option value="1">Sure</option> 
</select> 
<hr/> 
Name <br/> 
<input type="text" name="rCardUser" class="mRequired" /> 

<hr/> 
Card<br/> 
<input type="text" name="rCardNrr" class="mRequired" /> 

jQuery

if ($("#rReservation").val() == "1") { 
    $('.mRequired').addClass('required'); 
} else { 
    $('.mRequired').removeClass('required'); 
} 

EXEMPLE EN DIRECT à violon - http://jsfiddle.net/C7Gg3/

+0

Le code semble très bien. Qu'est-ce qui ne fonctionne pas exactement? –

Répondre

10

vous en avez besoin dans un gestionnaire d'événements:

$('#rReservation').change(function(){ 
    $('.mRequired').toggleClass('required', $(this).val() == '1'); 
}); 

http://jsfiddle.net/AlienWebguy/C7Gg3/1/

Si vous voulez déclencher simplement la charge, vous devez ajouter selected="selected" à l'une des options, parce que l'on est « sélectionné », $('#rReservation").val() sera null. Exemple: http://jsfiddle.net/AlienWebguy/C7Gg3/3/

+0

Bien plus propre à utiliser '.toggleClass()', amigo ... –

+0

D'accord. Je ne voulais pas réécrire tout son code, mais pour l'amour de la démo, je suppose que ça vaut le coup. – AlienWebguy

5

Vous devez écouter l'événement change:

$("#rReservation").change(function(){ 
    if ($("#rReservation").val() == "1") { 
     $('.mRequired').addClass('required'); 
    } else { 
     $('.mRequired').removeClass('required'); 
    } 
}); 

http://jsfiddle.net/epkN8/

+1

-1 non, il ne le fait pas. – Maverick

+1

@Matt Anderson: Pourquoi pas? Il essaie d'ajouter/supprimer une classe chaque fois qu'une option est sélectionnée. La seule façon de le faire, AFAIK, est d'écouter l'événement 'change'. Est-ce que je manque quelque chose? –

+0

Il a dit 'j'essaye de vérifier avec jQuery si l'option de sélection avec la valeur = 1 est choisie puis ajoute la classe à quelques éléments'. S'il avait ajouté la propriété "selected" à l'un de ses tags "

0

Vous devez vous assurer que vous avez enveloppé votre code dans un événement de changement afin que vous écoutez pour le changement qui se passe.

http://jsfiddle.net/C7Gg3/2/

$('#rReservation').change(function(){ /* my code goes here */}); 
3

Peut-être que vous voulez ajouter/supprimer la classe à chaque fois que la valeur change <select>:

$(function() 
{ 
    $("#rReservation").change() 
    { 
     $('.mRequired').toggleClass('required', $(this).val() == "1"); 
    } 
}); 
+0

+1 pour suggérer l'utilisation de bascule avec l'argument condition. – AlienWebguy

Questions connexes