2016-06-24 1 views
0

J'essaie de cacher une section basée sur le résultat d'une sélection de bouton radio Oui/Non où oui est vrai et non est faux. Je l'ai à où si l'utilisateur sélectionne un bouton, le champ est affiché, mais il le fait pour oui ou non, aussi si l'utilisateur clique sur le non, il doit rester caché (ce qui n'est pas le cas). Merci pour toute aide.ASP.NET Radio boutons sélection pour masquer/montrer la section div

Voici le code JQuery

$(document).ready(function() { 
    $('input[type="radio"]').click(function() { 
     if ($(this).prop('#ImportPartRadio', true)) { 
      $('#ImportPartQuestions').show(); 
     } 

     else if ($(this).prop('#ImportPartRadio', false)){ 
      $('#ImportPartQuestions').hide(); 
     } 
    }); 
}); 

Voici les sections div

@*import parts radio button*@ 
    <div class="span-18 last" id="ImportPart"> 
     <table class="item-display"> 
      <tr> 
       <td class="label required" id="ImportPartRadio"> 
       <div class='tooltip'>Is this an import part?<span class="tooltiptext">This information can be used to calssify the part for US Customs purposes.</span></div></td> 
       <td class="value" colspan="5"> 
        Yes: @Html.RadioButtonFor(model => model.ImportPart, true) 
        No: @Html.RadioButtonFor(model => model.ImportPart, false) 
       </td> 
      </tr> 
      </table> 
    </div> 


    @*This table is for full procurement and sales procurement setup only*@ 
    <div class="span-18 last" id="ImportPartQuestions"> 
     <table class="item-display"> 
      <tr> 
       <td class="label">If an import, what is the material and function of part?</td> 
       <td colspan="5" class="value"> 
        @Html.TextAreaFor(model => model.MaterialAndFunction, new { @placeholder = "Description Here", maxLength = 300 }) 
        @Html.ValidationMessageFor(model => model.MaterialAndFunction) 
       </td> 
      </tr> 
    </table> 
</div>  

J'ai été googler pendant des heures et ne peut pas sembler trouver une solution aux travaux, c'est aussi proche comme l'un d'entre eux vient à travailler pleinement.

Here is the html code rendered by the browser

+0

est '# ImportPart' votre destinée ' propriété'? – Rayon

+0

#ImportPart est le div id, je voulais qu'il soit #ImportPartRadio, je l'ai édité. Merci, les résultats sont toujours les mêmes que ceux décrits. –

+0

Lisez à propos de 'jQuery .prop' ... Je suppose que vous l'avez mal compris .. – Rayon

Répondre

0

$(document).ready(function() { 
    $('input[name="ImportPart"]').change(function() { 
    var radioValue = $(this).val(); 
    var questionsDiv = $('#ImportPartQuestions'); 
    if (radioValue == "True") { 
     questionsDiv.show(); 
    } else { 
     questionsDiv.hide(); 
    } 
    }); 
}); 

ou à l'aide .toggle(display)

$('input[name="ImportPart"]').change(function() { 
    $('#ImportPartQuestions').toggle(this.value === "True"); 
}); 
+0

Cela fonctionne exactement comme je le voulais! Merci beaucoup! –

0
$(document).ready(function() { 
    $('#ImportPartRadio input[type="radio"]').click(function() { 
     if ($(this).val() === 'True') { 
      $('#ImportPartQuestions').show(); 
     } else { 
      $('#ImportPartQuestions').hide(); 
     } 
    }); 
}); 

// modifié pour correspondre à votre cas avec la valeur vraie, et fixé une faute de frappe.

+0

lorsque j'essaie cette solution, la section div reste caché, peu importe quoi. Mais merci d'essayer. –

0

Pourquoi ne pas obtenir l'événement de changement qui sera plus robuste:

$(document).ready(function() { 
    $('input[type="radio"]').change(function() { 
     if ($(this).val()==true) { 
      $('#ImportPartQuestions').show(); 
     } 

     else { 
      $('#ImportPartQuestions').hide(); 
     } 
    }); 
});