9

次のチェックボックスがあります。

<input type="checkbox" id="startClientFromWeb" name="startClientFromWeb" data-bind="checked: StartClientFromWeb" />

および次の入力テキストフィールド:

<input id="mimeType" name="mimeType" data-bind= "value: MimeType" />

これは私のjs検証コードです:

 $("#franchiseForm").validate({
            rules: {
                mimeType: {
                    required: $("#startClientFromWeb").is(":checked")
                }
            }
        });

チェックボックスがチェックされている場合にのみ、mimeType入力テキストフィールドが必須になるようにします。何らかの理由で上記が機能していません。私はjavascriptとjqueryにまったく慣れていません。実例の助けがあれば大歓迎です。ありがとう!

4

3 に答える 3

12

次のような処理を行うために、独自のカスタム検証メソッドを追加できます。

$.validator.addMethod("requiredIfChecked", function (val, ele, arg) {
    if ($("#startClientFromWeb").is(":checked") && ($.trim(val) == '')) { return false; }
    return true;
}, "This field is required if startClientFromWeb is checked...");


$("#franchiseForm").validate({  
        rules: {  
            mimeType: { requiredIfChecked: true }  
        }  
 });
于 2012-05-21T14:18:13.623 に答える
2

入力が。の場合、検証はトリガーされませんdisabled。その事実を使用することができます-テキストボックスを必須にしますが、最初は無効にし、チェックボックスがオンになっている場合にのみ有効にします。

$(function () {
   $('#startClientFromWeb').change(function () {
        if ($(this).is(':checked')) {
            $('#mimeType').removeAttr('disabled');                
        }
        else {
            $('#mimeType').attr('disabled', 'disabled');
        }
    });
});
于 2012-05-21T14:00:52.393 に答える
0

動作する最も簡単な方法:
rules : {mimeType:{required:"#startClientFromWeb:checked"}}, messages: {mimeType: {required: 'Repeat checked, To date required'}}

于 2021-01-28T16:48:50.443 に答える