一次显示验证消息(验证摘要)而不是逐个jqgrid?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次显示验证消息(验证摘要)而不是逐个jqgrid?相关的知识,希望对你有一定的参考价值。

如果我在编辑网格行的表单中有2个字段并且它们都是必需的,那么当我单击提交仅显示需要第一个字段的消息时。当我在该字段中键入内容并提交时,将显示第二个字段验证错误。 ... 等等。

有没有办法一次显示验证消息?这是我的代码

 editrules: {                                  
                                custom_func:function (value, colName) {
                                    return validateCheck(value, colName, 'Integer', colNames[i + lenarrtype + 2]);
                                }, 
                                maxlength: colNames[i + lenarrtype + 1],
                                custom: true,
                                required: true
                            },

function validateCheck(value, column, edittype, scalesize) {

    setTimeout(function () {
        $("#info_dialog").css({
            left: "25%", // new left position of ERROR dialog
            top: "2%",   // new top position of ERROR dialog

        });
    }, 50);

    switch (edittype) {
        case ('Integer'):
            if (value < 0)
                return [false, column + " :ستون " + "مقدار غیر مجاز"];
            else if (Number(value) === value || value % 1 !== 0) {

                 return [false, column + " :ستون " + " مقدار غیر مجاز "];
            }
            else
                return [true, ""];
            break

        case ('Digit'):

            var scale_splite = value.split('.');
            if (scale_splite.length > 1) {
                if ((scale_splite[1]).length > scalesize) {
                    //return [false, column + " :ستون " + "مقدار اعشار مجاز نیست"];
                }
            }

             if (value < 0)
                return [false, column + " :ستون " + "مقدار غیر مجاز"];
             if (Number(value) === value) {
                return [false, column + " :ستون " + "مقدار غیر مجاز "];

             }
                return [true, ""];
            break
    }

}

请这个演示:https://jsfiddle.net/dnfk8hmr/249/

答案

免费的jqGrid可以在内联编辑期间进行两次验证:一种是标准字段验证,您可以从旧的jqGrid获知,另一种是自定义最终验证,这将在验证每个字段后进行。

您可以删除当前使用的所有验证规则,并添加saveRowValidation回调(例如,在jqGrid的inlineEditing参数内)。回调得到一个options参数,其中包含修改后的数据,旧数据和the answer中描述的一些其他信息。回调可以返回true以通知成功验证,或者它可以将errorTextoptions属性设置为自定义错误消息并返回false。

inlineEditing: {
    key: true,
    saveRowValidation (options) {
        // options.newData, options.savedRow, options.rowid 

        if (/*some tests of options.newData*/) {
            options.errorText = "your custom error message";
            return false;
        }
        return true; // no error
    }
}

以上是关于一次显示验证消息(验证摘要)而不是逐个jqgrid?的主要内容,如果未能解决你的问题,请参考以下文章

在回发时,如何向验证摘要添加错误消息?

如何在 JQuery Multifile 中删除警报验证

模型验证摘要未显示

97 加密算法与消息摘要算法

如何验证是不是显示 toast 消息?

微信开发模式无法验证以及返回消息中文乱码的情况