Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
无法禁用jQuery验证_Jquery_Asp.net Mvc 4_Jquery Validate - Fatal编程技术网

无法禁用jQuery验证

无法禁用jQuery验证,jquery,asp.net-mvc-4,jquery-validate,Jquery,Asp.net Mvc 4,Jquery Validate,我无法禁用窗体的验证。我尝试过其他问题和论坛的许多解决方案,如: 1. $("#PatientForm").validate({ ignore: "*" }); 2. $("#submitButton").addClass("cancel"); 3. $('#PatientForm').validate().settings.ignore = ["*"]; 4. $("#PatientForm").validate({ onsubmit: false }); 5. $('#PatientForm

我无法禁用窗体的验证。我尝试过其他问题和论坛的许多解决方案,如:

1. $("#PatientForm").validate({ ignore: "*" });
2. $("#submitButton").addClass("cancel");
3. $('#PatientForm').validate().settings.ignore = ["*"];
4. $("#PatientForm").validate({ onsubmit: false });
5. $('#PatientForm').validate({ submitHandler: null });
jqueryvalidate仍然希望验证所有字段。我正试图改变复选框。复选框更改处理程序被限制,因为我已经用FireBug检查了它,并且所有调用(1.5.)都在没有任何错误消息的情况下执行

以下是我的验证配置:

    // JQUERY VALIDATE - TURN ON VALIDATION ON SUBMIT + VALIDATE PESEL BEFORE SAVE
    $('#PatientForm').validate({
        submitHandler: function(form) {
            var pesel = $('#Pesel').val();
            var isValid = $(form).valid();
            $.ajax({
                type: 'GET',
                url: '@Url.Action("IsPeselExisting", "Admin")',
                data: { peselPar: pesel },
                success: function (msg) {
                    if (msg["exists"] == 'true')
                    {
                        if (isValid == true)
                        {
                            if (confirm("Wprowadzony pesel już istnieje! Czy na pewno chcesz dodać użytkownika o kolidującym peselu"))
                            {
                                form.submit();
                            }
                        }
                    }
                    else
                    {
                        if (isValid == true)
                        {
                            form.submit();
                        }
                    }
                }
            });
        }
    });

    // JQUERY VALIDATE - GENERAL SETTINGS
    $('#PatientForm').validate().settings.ignore = [];
    $("#PatientForm").validate({ ignore: ".ignored" });

    // JQUERY VALIDATE - GENERAL SETTINGS
    $.validator.addMethod("regex", function (value, element, regexp) {
        return regexp.test(value);
    }, "");

提前感谢…

一旦jQuery验证插件在表单上初始化,就没有已知的方法来禁用它。。。句号

尝试失败的原因是无法在同一表单上多次调用
.validate()
方法。初始化后,对
.validate()
的任何后续调用都将被忽略

$('#myform').validate({ /* your settings */ });  // <- initialize plugin

// later ...

$('#myform').validate({ /* new settings */ }); // <- ALWAYS IGNORED!!

保存
工作演示:


其他问题

  • 您不能在
    ajax()
    函数中的任何位置执行
    form.submit()
    ;将
    submit()
    放在
    ajax()
    success
    回调中完全是胡说八道。
    .ajax()
    中的
    success
    回调意味着表单已经使用ajax成功提交。因此,当Ajax已经发送完表单时,
    成功
    中的
    .submit()
    毫无意义

  • 你的“设置”部分也毫无意义。首先,使用
    .settings将
    ignore
    设置为
    []
    。ignore
    ,然后立即在
    .validate()
    方法中将
    ignore
    设置为
    忽略“
    。为您的设置选择一种方法和一组参数,并坚持使用

  • 正如我试图解释你的另一个问题


    这里有一些可能有用的提示:上述问题的另一个解决方案帮助了我。禁用表单:
    jQuery('#form').validate().currentForm=''jQuery('#form').validate().currentForm=jQuery('#form')[0]为什么jQuery验证如此不可预测?:(仍然显示验证消息(必需,我的自定义正则表达式),但允许提交…此验证库有什么问题,它如此不可预测?它没有任何问题,正确使用时非常可预测。那么是否有方法在某些文件上保留“正则表达式”验证,并在所有字段上关闭“必需”?我正在使用您首先提到的“设置”部分用于禁用隐藏文件验证,然后启用“.ignored”验证。@XaweryWiśniowiecki,您可以使用
    .rules('add')
    .rules('remove')
    方法动态更改规则。请参阅:我认为您在第1点上有错误。(其他问题)。这
    .ajax()调用
    只是为了检查
    IsPeselExisting
    (Pesel的数字对于波兰的任何人来说都是不同的。我不能用验证来做这件事,只是为了问DB),然后如果成功(Pesel不同于DB中的任何Pesel),它就会提交表单。我认为唯一错误的陈述是
    var isValid=$(表单).valid();
    。因为进入submitHandler意味着表单已经有效。我现在是吗?@XaweryWiśniowiecki,是的,进入
    submitHandler
    意味着表单已经有效。使用
    class=“取消”时例外“
    在“提交”按钮上,然后进入
    submitHandler
    ,无需验证。但是,如果只需要检查数据库以查看是否存在某些内容,则应使用
    remote
    规则/方法。
    <input type="submit" class="cancel" value="SAVE" />
    
    <button type="submit" class="cancel">SAVE</button>