c#之刷新下拉列表但保留旧的选定值 JSON
我的一个 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();
基本上,数据是选择列表项的列表,第一部分查找所有 vendor 语言 div 并选择选择,然后我们删除下拉列表中具有值的所有列表项(因此“请选择...”我拥有的默认列表项不会被删除,因为它没有分配值),一旦删除了所有填充的项目,我就会迭代我的数据变量并再次填充我的所有下拉列表。
这段代码工作正常,但我遇到的问题是,用户转到页面并选择一些选项,然后用户通过新打开的 jquery 模式向下拉列表添加一个新选项,当模式关闭时上面的代码已运行,但他们选择的选项现在没有设置回请选择。如何保持选中旧值并将它们放回到我的下拉列表选项中?
请您参考如下方法:
这是工作代码
<script>
$.getJSON("@Url.Action("GetLanguages")", function (data) {
var $languages = $('.supplier-languages select');
$languages.each(function () {
var $language = $(this);
var selectedValue = $language.val();
$language.children().filter(function () {
return $(this).attr('value');
}).remove();
$.each(data, function () {
debugger;
var option = $('<option />', {
text: this.Text,
value: this.Value,
});
if (this.Value == selectedValue) option.attr('selected', 'selected');
$language.append(option.clone());
});
});
});
jSnap.modals.removeModal();
</script>
现在基本上,它的作用与上面相同,但它一次为每个下拉列表 1 执行此操作,而不是遍历所有下拉列表,我们获取 selectedValue,然后删除所有子项,然后填充每个下拉列表使用新选项,并检查保存的选定值是否等于我们要填充下拉列表的任何选项,如果是这样,我们然后将选定的选项设置为选中,
希望这可以帮助其他人。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



