首页 > web前端 > js教程 > 正文

如何处理 jqGrid 中的服务器端错误和表单验证?

Linda Hamilton
发布: 2024-11-17 04:38:03
原创
324 人浏览过

How to Handle Server-Side Errors and Form Validation in jqGrid?

在 jqGrid 中处理服务器端错误和表单验证

问题:

您需要从 JSON 解析错误响应并将它们显示在 jqGrid 的对话框中。理想情况下,您希望网格检查“STATUS: 'ERROR'”并相应地显示所有错误消息。

答案:

遵循 HTTP 协议指南至关重要服务器和客户端通信时。标准的成功响应包括以下内容:

HTTP/1.1 200 OK
...
Content-Type: application/json
...

{"page":"1",....}
登录后复制

相反,如果 URL 不存在,服务器响应将以:

HTTP/1.1 404 Not Found
登录后复制

jqGrid 依赖于 HTTP 状态代码以确定如何处理服务器响应。例如,404 状态代码表示网格不会尝试解释 JSON 数据。

演示代码:

演示此概念:

$("#list").jqGrid({
    url: 'Unknown.json', // file with this name doesn't exist
    datatype: 'json',
    // ... other relevant parameters
    loadComplete: function () {
        alert("OK");
    },
    loadError: function (jqXHR, textStatus, errorThrown) {
        alert('HTTP status code: ' + jqXHR.status + '\n' +
              'textStatus: ' + textStatus + '\n' +
              'errorThrown: ' + errorThrown);
        alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
    }
});
登录后复制

此代码将显示以下警报:

  • HTTP 状态代码:404
  • 文本状态:未找到
  • 错误抛出:错误
  • HTTP 消息正文 (jqXHR.responseText):空

自定义错误处理:

如果您想以不同方式处理错误响应,可以使用 error HTTP 状态代码。下面是 loadError 实现的扩展版本:

loadComplete: function () {
    // remove error div if it exists
    $('#' + this.id + '_err').remove();
},
loadError: function (jqXHR, textStatus, errorThrown) {
    // remove error div if it exists
    $('#' + this.id + '_err').remove();

    // insert div with the error description before the grid
    $(this).closest('div.ui-jqgrid').before(
        '<div>
登录后复制

此函数删除任何现有的错误 div,然后在网格之前插入一个新的 div 以显示错误消息。可以自定义decodeErrorMessage函数来处理您喜欢的格式的错误消息。

使用displayErrorMessage:

免费的jqGrid提供了内置的displayErrorMessage方法,用于在网格上方的错误 div。在使用自定义错误处理之前,建议测试默认行为以确保其满足您的需求。

以上是如何处理 jqGrid 中的服务器端错误和表单验证?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板