Bagaimana untuk Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid?

Linda Hamilton
Lepaskan: 2024-11-17 04:38:03
asal
319 orang telah melayarinya

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

Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid

Masalah:

Anda perlu menghuraikan ralat daripada JSON respons dan paparkannya dalam kotak dialog dalam jqGrid anda. Sebaik-baiknya, anda mahu grid menyemak "STATUS: 'ERROR'" dan menunjukkan semua mesej ralat dengan sewajarnya.

Jawapan:

Adalah penting untuk mengikuti garis panduan protokol HTTP apabila berkomunikasi antara pelayan dan klien. Respons standard yang berjaya termasuk yang berikut:

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

{"page":"1",....}
Salin selepas log masuk

Sebaliknya, jika URL tidak wujud, respons pelayan akan bermula dengan:

HTTP/1.1 404 Not Found
Salin selepas log masuk

jqGrid bergantung pada kod status HTTP untuk menentukan cara mengendalikan respons pelayan. Sebagai contoh, kod status 404 menunjukkan bahawa grid tidak akan cuba mentafsir data JSON.

Kod Demo:

Untuk menunjukkan konsep ini:

$("#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);
    }
});
Salin selepas log masuk

Kod ini akan memaparkan makluman berikut:

  • Kod status HTTP: 404
  • textStatus: Not Found
  • error Thrown: error
  • Isi mesej HTTP (jqXHR.responseText): kosong

Ralat Tersuai Pengendalian:

Jika anda mahu mengendalikan respons ralat secara berbeza, anda boleh menggunakan kod status HTTP ralat. Di bawah ialah versi lanjutan pelaksanaan 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>
Salin selepas log masuk

Fungsi ini mengalih keluar sebarang div ralat sedia ada, kemudian memasukkan div baharu sebelum grid untuk memaparkan mesej ralat. Fungsi decodeErrorMessage boleh disesuaikan untuk mengendalikan mesej ralat dalam format pilihan anda.

Menggunakan displayErrorMessage:

JqGrid percuma menyediakan kaedah displayErrorMessage terbina dalam untuk memaparkan mesej ralat dalam div ralat di atas grid. Sebelum menggunakan pengendalian ralat tersuai, adalah disyorkan untuk menguji kelakuan lalai untuk memastikan ia memenuhi keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan