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
  • textStatus: Not Found
  • errorThrown: error
  • 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート