jQGrid- 在验证错误时清除添加表单输入字段

jQGrid- Clears the add form input field on validation error

我有一个 jqgrid 视图并添加了使用 jqGrid 界面插入新行的选项。添加时,如果没有错误,我会进行一些服务器端验证,然后将更新它,否则弹出窗口应该可以使用错误消息。如果出现验证错误,我的 pop 可用,但输入文本在插入表单中被清除。代码片段:

$("#tblJQGrid").jqGrid(
        {
           //grid details 

        }

        ).navGrid('#tblJQGrid_toppager',
        {
            edit: false, add: true, del: false, search: true, refresh: true,
        },
    {
        // edit options

    },
    {
        // add options
    url: "insert/something",
    closeAfterAdd: true,
    reloadAfterSubmit: true,
    afterComplete: function (response) {
        if (response.responseText) {
            if (response.responseText == " updated successfully") {
                $(".ui-icon-close").trigger('click');
                alert(response.responseText);
            }
            else {
                alert(response.responseText);
            }
        }
    }
    },
    {
        // delete options

    },
    { recreateFilter: true, overlay: true, multipleSearch: true, multipleGroup: true }
    );

重要的是在所有问题的文本中写下,特别是如果您报告错误,您使用的是哪个版本的 jqGrid 以及来自哪个分支(free jqGrid, Guriddo jqGrid JS 或版本 <=4.7 的旧 jqGrid)。

表单编辑期间服务器验证的标准方式是指服务器在编辑响应正文中报告带有错误描述的文本或HTML片段,并且响应的状态代码是HTTP 错误 (>=400)。仅当您的服务器端代码无法设置 HTTP 状态代码时,您才应该使用 afterSubmit(而不是 afterComplete)回调来分析服务器响应并通知 jqGrid 响应是否包含错误报告。如果 editing/adding 操作成功,回调 afterSubmit 必须 return [true](以 true 作为第一个元素的数组)。如果出错,它应该 return 形式为 [false, "some string with the error description"] 的数组。 afterComplete 将被调用得太晚,无法用于验证。