验证错误列表出现在第二次提交/点击表单

validation errorlist comes on second submit / click of form

本文关键字:提交 表单 第二次 错误 列表 验证      更新时间:2023-09-26

我使用的是ASP。. NET MVC与jquery和jquery验证。

我已经创建了一个页面,其中包含一些条目名称和地址等…

在提交上单击我想验证我在视图模型中作为所需字段给出的详细信息。

所有运行正常,验证成功。

我想获得所有必需字段的错误列表。

我是这样得到它的:

var validator = $("#formname").validate();
for (var i = 0; i < validator.errorList.length; i++) {
    console.log(validator.errorList[i].message);
}

所有在这里运行良好,但我在这里面临的问题是,我得到了errorList在第二次点击/提交不是在第一次点击。

我想要所有的errorList在第一次点击/提交。

我不明白为什么它会在第二次点击时出现?

请问是谁做了这个问题或解决了这个问题,帮助我解决这个问题。

任何帮助都将不胜感激。

我的代码示例:
 $('#formname').submit(function () {
    $.validator.unobtrusive.parse($('#formname'));
    var $form1 = $('#workoerderDetails');
//Here I try to get all the error list starts
    var validator = $("#formname").validate();
        for (var i = 0; i < validator.errorList.length; i++) {
            console.log(validator.errorList[i].message);
        }
//Here I try to get all the error list ends
    if ($form1.valid()) {
    //my code if no any validation fire
    }
    else{
    return false;
    }
        });

$form1运行得很好但我想从中获取所有的错误列表所以我使用validator变量在for循环中获取所有的错误列表但它给了我第二次提交/点击

这是偶然的,我不知道,但我给出了我自己的第五个问题的答案。

var settings = $.data($('#formname')[0], 'validator').settings;
             $("#formname").bind("invalid-form.validate", function (form, validator) {
                 var errors = validator.numberOfInvalids();
                 var message = "Please fix these " + errors + " errors." ;
                 if (validator.errorList.length > 0) {
                     for (var x = 0; x < validator.errorList.length; x++) {
                         message += "<br/>'u25CF " + validator.errorList[x].message;
                     }
                     $("#errorList").show();
                     $("#errorList").html("");
                     $("#errorList").html(message);
                 }
                 else {
                     $("#errorList").hide();
                     $("#errorList").html("");
                 }
             });
             settings.submitHandler = function (form) {
                 if (confirm("Are you sure you wish to submit"))
                     form.submit();
             };

感谢这个很棒的文章代码项目。

感谢所有迅速回复的用户