我有这个选择列表:
<select url="/Admin/SubCategories" name="TopParentId" id="ParentList">
<option value="">Please select a parent category</option>
<option value="1" selected="selected">New Store</option>
<option value="2">Extensions</option>
<option value="3">Remodel</option>
<option value="4">Bespoke Signage</option>
<option value="5">Tactical Signage</option>
<option value="6">Size Chart</option>
<option value="7">Contact Info</option>
</select>
如您所见,选项 1 被标记为已选中。当我更改选择时,我使用此代码执行 ajax 调用来获取一些值来填充新的选择列表:
$("#ParentList").unbind("change");
$("#ParentList").change(function() {
var itemId = $(this).val();
var url = $(this).attr("url");
var options;
$.getJSON(url, itemId, function(data) {
var defaultoption = '<option value="0">Please select a sub-category</option>';
options += defaultoption;
$.each(data, function(index, optionData) {
var option = '<option value="' + optionData.valueOf + '">' + optionData.Text + '</option>';
options += option;
});
$("#SubParentList").html(options);
});
});
我的问题是,每当我更改选择时,itemId 始终是选项 1 的 id,因为它被标记为已选择。它也不会获取正在更改的选项的值。
有人可以告诉我他们的知识吗?
问候,
让-菲利普
最佳答案
我遇到了同样的问题,并找到了一个很好的解决方法:
var before= $('#selectmenu').html();
$('#selectmenu').html("");
$('#selectmenu').html(before);
如果执行此操作,则必须刷新选择框。
关于JQuery SelectList 选项已更改不会刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000578/