1

私は、display:none プロパティを持つフィールドを持っています。ユーザーが「はい」ラジオ ボタンをクリックすると、ファイル アップロード フィールドが表示され、ファイル アップロードの検証も行われます。この場合、ignore[]を使用して作成しましたその検証は機能しますが、[いいえ] をクリックしても、ファイルのアップロードの検証が行われます。

ここに私のコードがあります

  <li >
   <p>
    <label for="rad">radio label:
    </label><br>
    <input type="radio" name="rad" value="yes" style="width:20px">&nbsp; Yes&nbsp;&nbsp;</input>
    <input type="radio" name="rad" value="no" style="width:20px">&nbsp; No</input><br/>
    <label for="rad" class="error" style="display:none">This field is required</label>
   </p>
    <p>
        <input type="file" name="fupl" style="display:none;margin-top:10px" id="fup"/>
        <label for="fupl" class="error" style="display:none;color:red">This field is required</label>
    </p>
</li>
<br>
<li>
    <label>checkbox label
    </label><br><br>
    <input type="checkbox" name="cb" value="tick" style="width:20px">&nbsp;&nbsp;<small>checkbox field<small></input>
    <br>
    <label for="fee" class="error" style="display:none">This field is required</label>
</li>
<br>
<li>
<input type="submit" class="button" value="SUBMIT" style="float:right"/>
</li>
<script>
        $(document).ready(function()
        {
        $("input[type='radio']").change(function(){
        if($(this).val()=="yes")
        {
        $("#fup").show();
        }
        else
        {
        $("#fup").hide();
        }
        });
        });
    </script>

これは私のjqueryです

 $('#form').validate({
    ignore :[],
     rules: {   
        fupl: {
            required: true,
            accept:'docx|doc'
            },
        cb:
            {
            required:true
            }
         }
         });
4

2 に答える 2

0

検証スクリプトfupの代わりに使用します。fup1

于 2013-03-01T12:11:18.973 に答える
0

ファイル アップロードのルールを常にそこに置くのではなく、変更機能に追加することができます。

var fuplRules = {
    required: true,
    accept: 'docx|doc'
};


$("input[type='radio']").change(function () {
    if ($(this).val() == "yes") {
        $("#fup").show().rules('add', fuplRules);
    } else {
        $("#fup").hide().rules('remove');
    }
});

または、設定をそのままにして、 を に変更するrequired: trueこともできますrequired: 'input[name="rad"][value="yes"]:checked'。これは、必要なルールの依存関係式バージョンを使用します。

作業例 #1: http://jsfiddle.net/ryleyb/WFKfq/

作業例 #2: http://jsfiddle.net/ryleyb/WFKfq/1/

于 2013-03-01T16:18:21.987 に答える