2010-08-27 6 views
1

Ce genius code fonctionne très bien pour les cases à cocher:champ Afficher si certaine valeur option est sélectionnée - doit travailler sur pageload

$(document).ready(function() { 
    $("#Languages-spoken-and-understood-8").change(function() { 
     $("#li-2-21")[$(this).is(":checked") ? 'show' : 'hide']("fast") 
    }).change(); 
}); 

Ce que j'aime est que cela fonctionne onload. J'essayais de le modifier pour une boîte de sélection. Le code est généré automatiquement par cforms sur wordpress.

<select name="Severity-of-your-symptoms" id="Severity-of-your-symptoms" class="cformselect" > 
    <option value="full01_severity_notselected" selected="selected">Please select...</option> 
    <option value="Mild">Mild</option> 
    <option value="Moderate">Moderate</option> 
    <option value="Severe">Severe</option> 
    <option value="full01_severity_other">Other</option> 
</select> 

C'est ce que j'ai essayé:

$('#Severity-of-your-symptoms').change(function() { 
    $("#li-10-14")[("#Severity-of-your-symptoms[value='full01_severity_other']").attr('selected', 'selected') ? 'show' : 'hide']("fast") 
    });change(); 

Il est évident que cela ne fonctionne pas. Seulement si "Autre" est sélectionné, la boîte de texte devrait apparaître. Existe-t-il un moyen d'utiliser à nouveau ce code astucieux ou ai-je besoin d'une fonction plus grande?

Merci!

Répondre

2

Vous y êtes presque, ce serait une façon beaucoup plus courte de le faire:

$('#Severity-of-your-symptoms').change(function() { 
    $("#li-10-14")[$(this).val() == "full01_severity_other" ? 'show' : 'hide']("fast"); 
}).change(); 

You can give it a try here.

Lorsque vous obtenez ou définissez la valeur d'un <select> (ou de tout autre élément de type d'entrée), vous pouvez utiliser .val(). Dans le cas où quelqu'un veut ce sans l'animation, il ressemblerait à ceci:

$('#Severity-of-your-symptoms').change(function() { 
    $("#li-10-14").toggle($(this).val() == "full01_severity_other"); 
}).change(); 
Questions connexes