Bagaimana untuk Membetulkan Nilai Pilihan yang Salah dalam Kotak Pilih Bergantung jqGrid Semasa Mengedit?

Susan Sarandon
Lepaskan: 2024-10-30 17:23:02
asal
156 orang telah melayarinya

How to Fix Incorrect Option Values in jqGrid Dependent Select Boxes During Editing?

Pilihan Kotak Pilihan Bergantung dalam Borang Pengeditan jqGrid

jqGrid membenarkan anda mencipta kotak pilihan dinamik untuk mengedit borang, di mana pilihan bergantung pada pemilihan dibuat dalam kotak pilih yang berkaitan. Ini berguna untuk senario seperti memilih negara dan mengisi pilihan negeri dengan sewajarnya.

Isu: Nilai Pilihan Salah

Walau bagaimanapun, isu timbul apabila mengedit rekod dengan kotak pilihan keadaan yang dihuni secara dinamik. Nilai pilihan bagi kotak pilihan keadaan bermula dari 0 dan bukannya nilai jangkaan 5.

Penyelesaian: Menetapkan Semula Pilihan Pengeditan dan Bina Semula Manual

Untuk menyelesaikan isu ini, kuncinya ialah memahami bahawa jqGrid menggunakan pilihan penyuntingan sekali sahaja pada permulaan. Untuk mengisi kotak pilihan keadaan dengan betul berdasarkan negara yang dipilih, pilihan edit mesti ditetapkan semula dan kotak pilih dibina semula secara manual.

Begini cara penyelesaiannya dilaksanakan:

  1. Tetapkan Semula Pilihan Pengeditan:

    • Pada pemuatan halaman, tetapkan pilihan penyuntingan untuk kotak pilihan keadaan kepada nilai statik.
  2. Perubahan Data:

    • Apabila kotak pilihan negara berubah, tetapkan semula pilihan edit kotak pilih negeri kepada nilai statik.
  3. Bina Semula Kotak Pilihan:

    • Berdasarkan negara yang dipilih, bina pilihan baharu untuk kotak pilihan negeri.
    • Untuk pengeditan sebaris, kemas kini kotak pilihan untuk baris tertentu.
    • Untuk menyunting borang, kemas kini kotak pilihan dalam borang pengeditan.
  4. Kekalkan Nilai Negeri:

    • Selepas menukar negara dan membina semula kotak pilihan negeri, pastikan keadaan yang dipilih ditunjukkan dengan betul dengan menetapkan nilai pilihan edit yang sesuai.

Coretan Kod:

<code class="javascript">// Reset the editoptions for the state select box
var resetStatesValues = function () {
    grid.setColProp('State', { editoptions: { value: states}});
};

// Build new options for the state select box based on the selected country
var changeStateSelect = function (countryId, countryElem) {
    var sc = statesOfCountry[countryId];
    var newOptions = '<option value="">All</option>'; // If needed
    for (stateId in sc) { newOptions += '<option value="' + stateId + '">' + states[stateId] + '</option>'; }
    grid.setColProp('State', { editoptions: { value: statesOfCountry[countryId]} });
    if ($(countryElem).is('.FormElement')) {
        // Form editing
        $(countryElem).closest('form.FormGrid').find("select#state.FormElement").html(newOptions);
    } else {
        // Inline editing
        var row = $(countryElem).closest('tr.jqgrow');
        var rowId = row.attr('id');
        $("select#" + rowId + "_State", row[0]).html(newOptions);
    }
};</code>
Salin selepas log masuk

Kesimpulan

Dengan menetapkan semula pilihan edit, membina semula kotak pilihan keadaan secara manual dan mengekalkan nilai keadaan yang dipilih, anda boleh pastikan borang edit dalam jqGrid memaparkan nilai pilihan yang betul untuk kotak pilihan bergantung.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Nilai Pilihan yang Salah dalam Kotak Pilih Bergantung jqGrid Semasa Mengedit?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!