首頁 > web前端 > js教程 > 為什麼jqGrid中的編輯表單在編輯記錄時在選擇框中顯示不正確的選項值?

為什麼jqGrid中的編輯表單在編輯記錄時在選擇框中顯示不正確的選項值?

DDD
發布: 2024-11-01 02:43:28
原創
604 人瀏覽過

Why does the edit form in jqGrid display incorrect option values in select boxes when editing records?

編輯框中選擇下拉選項值不正確

在jqGrid 中使用表單編輯時,可能會遇到選擇框中選項值不正確的情況編輯記錄時。具體來說,值可能從 0 開始,而不是正確的起始值。

問題描述

考慮以下場景:

  • 兩個選擇存在以下框:國家/地區和州。
  • 州選擇框選項取決於所選國家。
  • 例如,「國家:美國(選項值=1)」的州選項的值從從 1(「阿拉巴馬州:選項值=1」)。

編輯國家/地區為英國(選項值=2)且州為牛津(選項值=6)的記錄時,編輯表單最初將顯示正確的國家和州。但是,當狀態選擇框開啟時,選項值將不正確,並且從 0 開始。正確的選項值應該從 5 開始。

原因

根本原因是選擇框的 editoptions 值在初始化期間只使用一次。如果根據第一個選擇框的值動態填入第二個選擇框的選項,則需要手動更新第二個選擇框的選項。

解決方案

要解決此問題,我們將按照以下步驟操作:

  1. 將第二個選擇框的初始選項值重設為靜態清單(例如,所有可用狀態)。
  2. 當第一個選擇框的值發生變化,根據所選國家重建第二個選擇框的選項。
  3. 使用 dataEvents 處理第一個選擇框的變化並觸發第二個選擇框的重建。

程式碼範例

<code class="javascript">resetStatesValues = function () {
    grid.setColProp('State', { editoptions: { value: states} });
};
grid.jqGrid({
   // ... other configuration options
   editoptions: {
       value: countries,
       dataEvents: [
           {
               type: 'change',
               fn: function(e) {
                   resetStatesValues();

                   var countryId = $(e.target).val();
                   var sc = statesOfCountry[countryId];
                   var newOptions = '';
                   for (var stateId in sc) {
                       newOptions += '<option value="' +
                                  stateId + '">' +
                                  states[stateId] + '</option>';
                   }

                   if ($(e.target).is('.FormElement')) {
                       var form = $(e.target).closest('form.FormGrid');
                       $("select#State.FormElement", form[0]).html(newOptions);
                   } else {
                       var row = $(e.target).closest('tr.jqgrow');
                       var rowId = row.attr('id');
                       $("select#" + rowId + "_State", row[0]).html(newOptions);
                   }
               }
           }
       ]
   }
});</code>
登入後複製

透過實作這些步驟,我們確保第二個選取框的選項值始終根據所選國家/地區準確第一個選擇框。

以上是為什麼jqGrid中的編輯表單在編輯記錄時在選擇框中顯示不正確的選項值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板