我正在使用jQuery将项目添加到下拉列表中。值来自页面上的文本框。下面是我使用的代码:
$('#ddlProjectName').append( new Option($('#txtNewProjectName').val(), $('#txtNewProjectName').val()));
$('#ddlProjectName').val($('#txtNewProjectName').val()); // select appended item
这似乎工作良好;我可以在下拉列表中看到新项目,它是当前选定的项目。但是当我在下拉列表中选择不同的项目时,我新添加的项目就不再存在了。我后面的代码中的C#也看不到。
问题是我的下拉列表是自动回发的(当我的用户做出选择时触发我的代码)。这就是清除附加项的原因,但我不知道该怎么做。
我也试过:
$('#ddlProjectName').val($('#txtNewProjectName').val()).trigger('change');
没有运气。我看过这个网站,我真的认为this post会让我在某个地方,但我不明白答案。
任何想法都值得赞赏。
1条答案
按热度按时间cigdeys31#
正如您所描述的,您的下拉列表在选择后会更新。所以...
一个最佳的方法是一步一步地调试,找到下拉更新的位置,并在该事件后调用添加代码的选项。
如果你无法控制它,或者你想成为一个不可知论者(你的代码不关心你的下拉菜单更新了什么),使用
MutationObserver
来观察你的下拉菜单的更新。