Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果选中复选框,则需要JQuery验证输入文本字段_Javascript_Jquery Validate - Fatal编程技术网

Javascript 如果选中复选框,则需要JQuery验证输入文本字段

Javascript 如果选中复选框,则需要JQuery验证输入文本字段,javascript,jquery-validate,Javascript,Jquery Validate,我有以下复选框: <input type="checkbox" id="startClientFromWeb" name="startClientFromWeb" data-bind="checked: StartClientFromWeb" /> 我希望只有选中复选框时,mimeType输入文本字段才是必需的。由于某种原因,上述方法不起作用。我对javascript和jquery还很陌生。如果您有任何关于工作示例的帮助,我们将不胜感激。谢谢大家! 如果输入被禁用,验证将不会触发。

我有以下复选框:

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

我希望只有选中复选框时,mimeType输入文本字段才是必需的。由于某种原因,上述方法不起作用。我对javascript和jquery还很陌生。如果您有任何关于工作示例的帮助,我们将不胜感激。谢谢大家!

如果输入被禁用,验证将不会触发。您可以使用事实-允许textbox是必需的,但最初是禁用的,并且只有在选中复选框时才启用它

$(function () {
   $('#startClientFromWeb').change(function () {
        if ($(this).is(':checked')) {
            $('#mimeType').removeAttr('disabled');                
        }
        else {
            $('#mimeType').attr('disabled', 'disabled');
        }
    });
});

您可以添加自己的自定义验证方法来处理以下情况:

$.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 }  
        }  
 });

最简单的工作方式:

规则:{mimeType:{required:{startClientFromWeb:checked},消息:{mimeType:{required:{Repeat checked,todate required'}

我没有禁用#mimeType输入。我尝试了你的代码。它给了我以下错误:“预期::”对于这一行:mimeType:{requiredIfChecked}你能用小提琴给出例子吗?谢谢!问题是我正在对$(document.ready)应用验证,并且复选框的值始终为false。现在,我在ko.applyBindings调用之后应用验证,它按照预期工作。无论如何,谢谢你的帮助。
$(function () {
   $('#startClientFromWeb').change(function () {
        if ($(this).is(':checked')) {
            $('#mimeType').removeAttr('disabled');                
        }
        else {
            $('#mimeType').attr('disabled', 'disabled');
        }
    });
});
$.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 }  
        }  
 });