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

标签 javascript jquery jqgrid free-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 以通知验证成功,或者它可以将 optionserrorText 属性设置为自定义错误消息并返回 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
    }
}

关于javascript - 一次显示验证消息(验证摘要)而不是一个一个地显示 jqgrid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105575/

相关文章:

javascript - 对话框不工作

javascript - 写入 element.style.visibility 对页面没有影响(相同的 ID 有不同的地址?)

javascript - 如何将 json 对象转换为警告框中的字符串?

javascript - PHP MYSQLdisplaying unnowned span tags

javascript - 客户端jqGrid排序

javascript - future Chrome 应用程序中的内容脚本?

javascript - 将 jQuery datepicker 应用于多个实例

javascript - 如何在连字符后使用 Jquery 将每个单词大写?

jquery - 如何仅在选中或选中jqgrid的复选框时触发事件

jquery - jqgrid - 水平滚动条 - 位置 - 分页后 - 从左到右