5

私はmvc3とカミソリエンジンを初めて使用するので、送信ボタンが起動するように少なくとも1つのチェックボックスがオンになっていることを望みます。

 <div class="editor-field">
      @Html.Label("item1")
      @Html.CheckBoxFor(Model => Model.item1)
      @Html.Label("item2")
      @Html.CheckBoxFor(Model => Model.item2)
      @Html.Label("item3")
      @Html.CheckBoxFor(Model => Model.item3)
 </div>
 <p>
     <input type="submit" value="Create" />
 </p>

0個のチェックボックスが選択されている場合、テキストをレンダリングするには何らかのラベルが必要であり、各チェックボックスには値を確認できるようにIDが必要であることはわかっていますが、mvc3 razorにはこれを簡単にするものはありますか? ありがとう

4

2 に答える 2

10

多くの方法のうちの1つは、

<input type="submit" value="Create" onclick="return submitWith();"/>
<span id="validationMessage" />

そしてあなたのjavascriptで(ここにはもっとあるかもしれませんが、シンプルに保ちます)

function submitWith(){   
    var checkedCount = $("input:checked").length;
    var valid = checkedCount > 0;
    if(!valid){
         $('#validationMessage').html('You must select at least one option');
    }
    return valid ;        
}
于 2012-11-05T10:47:01.457 に答える
0

チェック ボックスにいくつかの有効な名前属性を指定します。各チェック ボックスの名前は同じである必要があります。 Name="CheckBoxForItems"

ボタンClickの作成のボタン イベント:(In js)
配列を宣言し、各関数を使用してチェック ボックスがオンになっているかどうかを確認します。

var arr = new Array();
$('input[name="CheckBoxForItems"]:checked').each(function (i) {
                arr.push($(this).attr("id"));
            });

 if(arr.length > 0)
$("#ButtonId").submit();
}
于 2012-11-05T10:46:37.133 に答える