jqGrid 編輯表單中的依賴選擇框選項
jqGrid 可讓您建立用於編輯表單的動態選擇框,其中選項取決於在相關選擇框中進行選擇。這對於選擇國家/地區並相應地填充州選項等場景非常有用。
問題:選項值不正確
但是,使用動態填滿的狀態選取方塊。狀態選擇框的選項值從 0 開始,而不是預期的 5。
解決方案:重設 Editoptions 並手動重建
要解決此問題,關鍵是要理解 jqGrid 僅在初始化時使用 editoptions 一次。若要根據所選國家/地區正確填入州選擇框,必須重設編輯選項並手動重新建立選擇框。
解決方案的實施方式如下:
重置編輯選項:
資料變更:
重建選擇框:
維護狀態值:
程式碼片段:
<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>
結論
結論用編輯選項,手動重建狀態選擇框,並維護選定的狀態值,您可以確保jqGrid 中的編輯表單顯示相關選擇框的正確選項值。以上是如何修復編輯過程中 jqGrid 相關選擇框中不正確的選項值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!