javascript - jQuery Validate() 和 Valid() 方法未定义或不起作用

标签 javascript jquery asp.net-mvc validation

我在我的 MVC4 项目中使用 jQuery 验证和必要的 javascript 文件(jquery-1.9.1.jsjquery.validate.min.js jquery.validate.unobtrusive.min.js) 和配置。我想要做的是在提交之前验证表单。如果表单有效,将调用一个方法,然后将其提交。如果不是,则不会提交,只会显示一个警告。我已按照 Call JQuery Validate Plugin without submitting the form 上的步骤操作以及许多类似的主题,尤其是在 jQuery 官方页面上。但不知何故,在执行 Validate() 和 Valid() 方法时,我遇到了诸如 undefined 之类的错误。我认为问题与 Validate() 方法有关。我尝试了不同类型的 jquery-1.x.x.js 文件,但结果是一样的。如何使用与以下方法类似的方法验证表单?还是别的?

script type="text/javascript">
$(function () {
        $("#submitbtn").click(function () {
            var form = $("#myForm");
            form.validate();
            var isValid = form.valid();

            if (isValid) { //If there is no validation error
                alert('form is valid - not submitted');
            } 
            else {
                alert('form is not valid');                               
        }
    });
});

最佳答案

我发现代码运行良好,但元素的 ID 不是“myForm”,您是否尝试过确保使用表单的 ClientID 属性而不是 ID?

$(function () {
    $("#submitbtn").click(function () {
        var form = $('#<%# myForm.ClientID %>');
        form.validate();
        var isValid = form.valid();
        if (isValid) { //If there is no validation error
            alert('form is valid - not submitted');
        } 
        else {
            alert('form is not valid');                               
        }
    });
});

我相信 $("#myForm") 没有像您预期的那样返回元素(例如,它返回 null 或 undefined 因为 myForm 不存在)因此 form.validate( ) 将不存在。

关于javascript - jQuery Validate() 和 Valid() 方法未定义或不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19630075/

相关文章:

javascript - 如何在翻转时替换文件夹名称?

javascript - jQuery 切换菜单,在外部单击时隐藏下拉内容

c# - 使用 getJSON MVC4 C#/Jquery 从 Controller 动态加载选择列表

c# - MVC 中的 Unity DI 有什么好处?

javascript - Tablesorter - 按 td 类排序

c# - 是否可以从 Controller 方法以编程方式调用 Razor 编译器?

javascript - 表格和条件 tr 中的 ng-repeat

javascript - React.js 处理事件浏览器丢失

javascript - 从字符串中删除空格、连字符和括号

javascript - 在 contenteditable div 的回车键上插入换行符