0

デフォルトの選択値を設定しないようにしながら、いくつかの異なるオプションを試しました。

オプション1

<div class="control-group">
    <h4>Text</h4>
    <div class="controls">
        <div hidden="hidden" >@Html.EditorFor(m => m.pc.PS1)</div>                            
        <div class="btn-group" data-toggle-name="pc.PS1" data-toggle="buttons-radio">
        <button type="button" value="11" class="btn@((Model.pc.PS1 == 11) ? " active" : string.Empty )" data-toggle="button">Yes</button>
        <button type="button" value="12" class="btn@((Model.pc.PS1 == 12) ? " active" : string.Empty )" data-toggle="button">No</button>
        <button type="button" value="13" class="btn@((Model.pc.PS1 == 13) ? " active" : string.Empty )" data-toggle="button">N/A</button>
    </div>
    @Html.ValidationMessageFor(model => model.pc.PS1)
</div>

オプション 2

<div class="control-group">
     <h4>Text</h4>
     <div class="controls">
         @Html.HiddenFor(m => m.pc.F1FallsRiskAssessmentFRASE)
         <div class="btn-group" data-toggle-name="pc.PS2" data-toggle="buttons-radio">
         <button type="button" value="11" class="btn@((Model.pc.PS2== 11) ? " active" : string.Empty )" data-toggle="button">Yes</button>
         <button type="button" value="12" class="btn@((Model.pc.PS2== 12) ? " active" : string.Empty )" data-toggle="button">No</button>
         <button type="button" value="13" class="btn@((Model.pc.PS2== 13) ? " active" : string.Empty )" data-toggle="button">N/A</button>
         </div>
         @Html.ValidationMessageFor(model => model.pc.PS2)
      </div>
</div>

$('#ctFRM').validate({
            rules: {
                "pc.PS1": { required: true, minlength: 2 },
                "pc_PS2": { required: true, minlength: 2 },

ページ上の非表示の ID は pc_PS2 ですが、名前は pc.PS2 であり、firebug スクリプト タブを使用し、これにブレーク ポイントを配置すると、検証が pc_PS2 の場合にデフォルト値が 0 であることが示されますが、「.」に関係なく検証メッセージは表示されません。また "_"。

「。」を使用するテキストボックス入力に対して機能します。検証ルールで、マスクを設定して「_」を使用します。

それぞれの値が 1/2/3 のラジオボタンで必要な検証を使用しようとしましたが、ページはデフォルトで値 0 の非表示になっているため、必要な真の検証をトリガーしません。

次に、オプション値を 11/12/13 に設定して、長さが 2 になるように設定してみました。これにより、minlength 2 を使用して送信を防ぐことができますが、変更するまで開始されません。

そのため、目立たない検証のバックアップオプション、または各質問に設定されたボタンごとに onclick を設定するバックアップオプションが残っています。これは、通常の文字列に必要な検証が別の非表示の値のセットで機能することを期待しています。

アイデアや解決策はありますか?

4

1 に答える 1

1

ignore非表示のフィールドを検証するには、次のようにオプションを設定する必要があります。

$('#ctFRM').validate({
    // options and rules,
    ignore: []
});

詳細については、 https ://stackoverflow.com/a/8565769/594235 を参照してください。

于 2013-03-04T15:22:28.470 に答える