0

ユーザーに少なくとも 1 つのボックスをチェックするよう要求したいチェックボックス グループ コントロールがあります。

View code
 ---------
 <% foreach (var item in Model)
             { %>  

                  <%:Html.CheckBox("EmployeId", new { value = item.EmployeeID,@class="required"})%>
                   <span class="field-validation-valid" id="Span1"></span>

                  <%:Html.LabelForModel(item.EmployeeName)%>
                  </div>
                 <%-- <%= Html.CheckBox("Accept", new { @class = "required" })%> 
                  <span class="field-validation-valid" id="Accept_validationMessage"></span>--%> 
          <%} %>                

    </fieldset> 
    <div class="assign_button">

誰でもこれについて助けてもらえますか?

4

2 に答える 2

1

検証したい場所で次のメソッドを呼び出してください。実装に応じて Checkbox クラス名と div 名を変更します。

function ValidateCheckBoxCheckedOrNot()
    {
        var selectedCheckBoxesValue = '';

        $('#DIVID').find("input:checkbox.CheckBoxClassName:checked").each(function (i, selected) {
                                                            if (selectedCheckBoxesValue.length == 0) {
                                                                selectedCheckBoxesValue += $(selected).val();
                                                            }
                                                            else {
                                                                selectedCheckBoxesValue += ',' + $(selected).val();
                                                            }});
            // Here you also get all the comma separated values if you want else use below method for it
        if(selectedCheckBoxesValue.length == 0)
        {
            alert("Select atleast one checkbox");
        }
    }

または、次の方法を使用して行うこともできます

function ValidateCheckBoxCheckedOrNot()
    {
        var selectedCheckBoxes = $('#DIVID').find("input:checkbox.CheckBoxClassName:checked").length;

        if(selectedCheckBoxes==0)
        {
            alert("Select atleast one checkbox");
        }
    }

編集された投稿

<div id="CheckBoxDiv">
<% foreach (var item in Model)
             { %>  

                  <%:Html.CheckBox("EmployeId", new { value = item.EmployeeID,@class="employeeCheckBox"})%>
                   <span class="field-validation-valid" id="Span1"></span>

                  <%:Html.LabelForModel(item.EmployeeName)%>
                  </div>
                 <%-- <%= Html.CheckBox("Accept", new { @class = "required" })%> 
                  <span class="field-validation-valid" id="Accept_validationMessage"></span>--%> 
          <%} %> 
</div>   

<script type="text/javascript">
    //Call following method on your button click event.
    function ValidateCheckBoxCheckedOrNot()
            {
                var selectedCheckBoxes = $('#CheckBoxDiv').find("input:checkbox.employeeCheckBox:checked").length;

                if(selectedCheckBoxes==0)
                {
                    alert("Select atleast one checkbox");
                }
            }
</script>
于 2012-08-09T08:49:22.497 に答える
1

クライアントの検証が必要だというのは正しいですか? jQuery を使用する場合、このコレクションが

  $('input[type="checkbox"].required:checked');

ゼロより大きい。

私はそのようなことを意味します:

function validateCheckbox(){
    var count = 0;
    $('input[type="checkbox"].required:checked').each(function() { ++count; } );
    return count > 0;
}

ボタンがあります<div class="assign_button">。このコンテキストでは、次のように記述できます。

$(function(){
    $('div.assign_button').click(function(){
            if (!validateCheckbox()) {
                alert('Please, check something!');
            }
            else {
                alert('You are wonderful!');
            }
        });
});
于 2012-08-09T07:46:17.267 に答える