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中文网其他相关文章!