編輯框中選擇下拉選項值不正確
在jqGrid 中使用表單編輯時,可能會遇到選擇框中選項值不正確的情況編輯記錄時。具體來說,值可能從 0 開始,而不是正確的起始值。
問題描述
考慮以下場景:
編輯國家/地區為英國(選項值=2)且州為牛津(選項值=6)的記錄時,編輯表單最初將顯示正確的國家和州。但是,當狀態選擇框開啟時,選項值將不正確,並且從 0 開始。正確的選項值應該從 5 開始。
原因
根本原因是選擇框的 editoptions 值在初始化期間只使用一次。如果根據第一個選擇框的值動態填入第二個選擇框的選項,則需要手動更新第二個選擇框的選項。
解決方案
要解決此問題,我們將按照以下步驟操作:
程式碼範例
<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中文網其他相關文章!