JavaScript – Simple Query

Voir le code JSFiddle que j'ai déjà. Mon problème est que je dois utiliser une vérification radio et une entrée de texte dans un champ de texte pour activer d'autres radios, cases à cocher et champs de texte. Jusqu'à présent, je n'ai réussi à activer les radios, les cases à cocher et les champs de texte à l'aide de l'option de radio 1 OU de l'option de radio 2.

Cette JSF peut vous aider à faire valoir et vous donner une meilleure compréhension de ce que je veux dire.

HTML:

<div class='conlabel'>Have you started trading yet?</div> <table width="100"> <tr> <td><label> <input type="radio" name="example" value="Yes" id="example_0" required /> Yes</label></td> </tr> <tr> <td><label> <input type="radio" name="example" value="No" id="example_1" required /> No</label></td> </tr> </table><br> <li> <div class='conlabel'>If Yes, enter trading name:</div> <input type="text" id="field1" name="field1" placeholder="" disabled /> </li><br> <li> <div class='conlabel'>If No, then:</div> <input type="text" id="field2" name="field2" placeholder="" disabled /> </li><br> <li> <div class='conlabel'>Enter trading start date (enabled when started trading yet = yes + trading name = notnull:</div> <input type="text" id="field3" name="field3" placeholder="" disabled /> </li><br> 

JS:

 $(function(){ $("#example_0, #example_1").change(function(){ $("#field1, #field2").val("").attr("disabled",true); if($("#example_0").is(":checked")){ $("#field1").removeAttr("disabled"); $("#field1").focus(); } else if($("#example_1").is(":checked")){ $("#field2").removeAttr("disabled"); $("#field2").focus(); } }); }); 

Dans cet exemple, le code active actuellement et se concentre sur le champ 1 du champ 1 ou selon la section radio-exemple_0 ou l'exemple_1. Ce que je n'ai pas pu comprendre, c'est s'ils choisissent Oui (exemple_0), puis entrez un nom commercial dans le champ1 pour ensuite activer le champ3.

J'espère que c'est plus clair que ma dernière tentative. Merci de votre aide! (:

Réponse: Donné par Daniel V.

 $(function(){ $("#example_0, #example_1").change(function(){ $("#field1, #field2").val("").attr("disabled",true); if($("#example_0").is(":checked")){ $("#field1").removeAttr("disabled"); $("#field1").focus(); } else if($("#example_1").is(":checked")){ $("#field2").removeAttr("disabled"); $("#field2").focus(); } }); }); $("#field1").blur(function(){ if($("#example_0").is(":checked")){ if($("#field1").val()!==""){ $("#field3").removeAttr("disabled"); } } }); 

Oui, vous pouvez créer un sélecteur qui recherche la case à cocher cochée et une zone de texte non vide:

 if ($('#example1:checked,#textfield1[value!=""]').length == 2) { 

Démo: http://jsfiddle.net/Guffa/rQKRH/

Modifier:

Avec ce code HTML, vous pouvez l'utiliser pour déterminer si la zone de texte doit être activée:

 var enable = $('#example_0').is(':checked') && $('#field1').val() != ''; 

Demo: http://jsfiddle.net/Guffa/cEaeK/18/

Je ne suis pas tout à fait sûr de vous comprendre, mais voulez-vous dire cela?

  if(($("#example1").is(":checked"))&&!$('#input').val()){//do} 

Demo: http://jsfiddle.net/WULPL/1/

  $("#field1").blur(function(){ if($("#example_0").is(":checked")){ if($("#field1").val()!==""){ $("#field3").removeAttr("disabled"); } } });