首頁  >  文章  >  web前端  >  如何處理 jqGrid 中的伺服器端錯誤和表單驗證?

如何處理 jqGrid 中的伺服器端錯誤和表單驗證?

Linda Hamilton
Linda Hamilton原創
2024-11-17 04:38:03319瀏覽

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);
    }
});

此程式碼將顯示下列警報:

  • 此程式碼將顯示下列警報:

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>

HTTP 狀態碼: 404

文字狀態:找不到錯誤拋出:錯誤

HTTP 訊息正文(jqXHR.responseText):空

自訂錯誤處理:如果你願意以不同方式處理錯誤回應,您可以使用錯誤HTTP 狀態代碼。以下是 loadError 實作的擴充版本:此函數刪除任何現有的錯誤 div,然後在網格之前插入一個新的 div 以顯示錯誤訊息。可以自訂decodeErrorMessage函數來處理您喜歡的格式的錯誤訊息。 使用displayErrorMessage:免費的jqGrid提供了內建的displayErrorMessage方法,用於在網格上方的錯誤 div。在使用自訂錯誤處理之前,建議測試預設行為以確保其滿足您的需求。

以上是如何處理 jqGrid 中的伺服器端錯誤和表單驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn