2016-04-13 1 views
1

J'essaie de désactiver d'autres cases à cocher lors de la sélection d'une case à cocher et de l'activer à nouveau si cette option a été de nouveau désactivée.
Ci-dessous est un extrait de code que j'ai trouvé qui a fonctionné pendant un exemple de violon pour une case à cocher standard, mais je n'ai pas été en mesure de répliquer cela pour une case à cocher, quelqu'un peut-il recommander les changements nécessaires pour que cela fonctionne dans un checkboxfor?Désactiver automatiquement les autres cases à l'aide de html.checkboxpour une fois que l'une est sélectionnée

<script> 
    $('#chkItems').change(function() { 
     $(this).siblings('#chkItems').prop('disabled', this.checked) 
    }); 
    </script> 

Et ci-dessous est mon checkboxfor où j'appelle cette

@Html.CheckBoxFor(modelItem => item.IsDisplayImage, new { id = "chkItems" }) 
+0

pourquoi ne pas utiliser la radio? – guradio

+0

Est-ce que la radio désélectionne automatiquement les autres options? – cg91

+0

oui c'est ce que c'est pour une seule sélection à la fois – guradio

Répondre

0

Vous pouvez utiliser ce code si vous voulez persister à l'aide des cases à cocher sinon de son mieux pour utiliser le bouton radio à la place

HTML

<label class="checkbox-inline check"> 
     <input type="checkbox" name="skills" id="radio" value="1"> 1 
</label> 
<label class="checkbox-inline check"> 
     <input type="checkbox" name="skills" value="2"> 2 
</label> 
<label class="checkbox-inline check"> 
     <input type="checkbox" name="skills" value="3"> 3 
</label> 

JS:

$('.check input:checkbox').click(function() { 
    $('.check input:checkbox').not(this).prop('checked', false); 
}); 

Vérifiez cette jsFiddle pour le demo

Vous pouvez utiliser les boutons radio comme:

<form> 
    <input type="radio" name="gender" value="male" checked> Male<br> 
    <input type="radio" name="gender" value="female"> Female<br> 
    <input type="radio" name="gender" value="other"> Other 
</form> 
+0

Merci, mais comment le faire en utilisant un @ html.checkboxfor ou un radiobuttonfor? – cg91

0

Okey. Par exemple, vous avez le modèle ForRadioButtonsModel comme

public class ForRadioButtonsModel 
    { 
     public int Id { get; set; } 
     public bool IsDisplayImage { get; set; } 
    } 

sur Voir Vous passez Collection de ces modèles ou un modèle qui contient cette collection

return View((List<ForRadioButtonsModel>) collection);

que dans la vue que vous pouvez faire ensuite pour créer RadioGroup

@foreach (var item in Model) <-- Model is of type List<ForRadioButtonsModel> 
{ 
    @Html.RadioButtonFor(m => item.IsDisplayImage, item.IsDisplayImage) 
} 

Cela va rendre le HTML suivant

<input checked="checked" id="item_IsDisplayImage" name="item.IsDisplayImage" type="radio" value="True"> 
<input checked="checked" id="item_IsDisplayImage" name="item.IsDisplayImage" type="radio" value="False"> 

Vous devrez donc RadioButtons avec le même nom, mais avec des valeurs différentes

+0

Ok Je viens juste de me rendre compte que je devrais éventuellement passer l'image isdisplay comme nulle à un moment donné (c'est-à-dire qu'aucune valeur n'est sélectionnée) est-ce encore possible avec un radiobutton? – cg91