编辑框中选择下拉选项值不正确
在 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中文网其他相关文章!