这个问题在这里已有答案:
我的一个CSHTML文件中有一些javascript代码
$.getJSON("@Url.Action("GetLanguages")", function (data) {
debugger;
var $languages = $('.supplier-languages select');
$languages.children().filter(function () {
return $(this).attr('value');
}).remove();
$.each(data, function () {
debugger;
var option = $('<option />', {
text: this.Text,
value: this.Value
});
$languages.append(option.clone());
});
});
jSnap.modals.removeModal();
基本上数据是一个selectlistitems列表,第一部分查找所有供应商语言div并选择select,然后删除下拉列表中具有值的所有listitems(所以“请选择... “我没有删除默认的listitem,因为它没有分配值”,一旦删除了所有填充的项目,我就会迭代我的数据变量并再次填充所有的下拉列表 .
这段代码工作正常,但我遇到的问题是,用户进入页面并选择一些选项,然后用户通过新打开的jquery模式向下拉列表添加一个新选项,当模态关闭时,上面的代码是比跑,但不是他们选择的选项现在回到请选择 . 如何保留选中的旧值并将其放回我的下拉列表选项中?
2 回答
您可以在变量中的AJAX调用之前保存旧的选定值:
当使用新值更新选择时,只需尝试将该值放回原处 .
这是工作代码
基本上现在,它与上面的相同,但它一次为每个下拉列表1执行,而不是遍历所有下拉列表,我们得到selectedValue,然后我们删除所有子项,然后我们使用new填充每个下拉列表选项并检查保存的selectedvalue是否等于我们要填充下拉列表的任何选项,如果这是真的,我们然后设置选择的选择,
希望这可以帮助其他人 .