2011-08-31 3 views
0

J'ai essayé la fonction "is" mais cela ne fonctionne pas dans asp.net. Je veux juste vérifier si la boîte est choisie, sinon garder dans cette page et montrer le message d'avis.Lorsque vous appuyez sur le bouton Soumettre, cochez si la case est cochée

code:

@foreach (var f in gs.Set.Facets) 
     { 
      <li> 
       <label> 
        <input type="@(gs.Set.AllowMultipleSelection ? "checkbox" : "radio")" 
        name="FacetResults" 
        value="@f.FacetID"@(ViewData.Model.FacetStates[f.FacetID] ? " checked=\"checked\"" : "") class="sel"/> 
        @f.LabelText 
       </label> 
      </li> 
     } 
    <input type="submit" value="Complete" id = "Complete" /> 
+1

Quelle case? Quel code JS avez-vous? – Mrchief

Répondre

0

Essayez cette

$("#Complete").click(function(){ 

    if(!$("input:checkbox[name='FacetResults']").is(":checked")){ 
     return false; 
    } 

}); 
+1

Il y aura plus d'une case à cocher avec le même nom. Il rend plusieurs en boucle. – Mrchief

+0

@Mrchief - Mais il a une condition pour définir le type case à cocher ou radio et ne sait pas s'il y aura beaucoup d'articles. – ShankarSangoli

0

Cela dépend de l'endroit où vous voulez que la logique. La réponse de Shankar est géniale si vous voulez la validation explicitement dans le javascript, mais j'ai tendance à préférer une approche ViewModel avec Data Annotations.

0

fonction .each() Utilisons jQuery pour vérifier l'état de chaque case à cocher:

$('#Complete').click(function() { 

    var isSelected = false; 

    $('input:checkbox[name="FacetResults"]').each(function (index) { 
     if ($(this).attr('checked')) { 
      isSelected = true; 
     } 
    }); 

    alert(isSelected); 
    return isSelected; 
}); 
Questions connexes