我有3个下拉列表,其中包含国家/地区的区域,位置和子位置。 在某人从第一个列表中选择某些内容后,我使用Ajax填充位置和子位置列表。
现在问题:
我正在使用LocalStorage
所以当刷新页面时,我可以保留这些值并自动重新填充列表中最后选择的值。
列表已经成功填充,但无法更改selectedIndex
("选择一个城镇/选择一个Subloc"被选中)。
我尝试了在stackoverflow中找到的关于如何更改selectedIndex
的所有方法,但没有一个工作,因为它们都没有给我一个错误。
所以我可以假设ajax
存在问题?
像js这样的东西会改变selectedIndex
,但是ajax
调用会将其重新更改回来,即使ajax
先于先调用jQuery(document).ready(function(){
if(localStorage) {
if(localStorage.regions) {
jQuery('#region_h').val(localStorage.regions);
alert(localStorage.regions);
getlocations_main(localStorage.regions); //ajax call for locations
}
if(localStorage.locations) {
jQuery('#location_h').val(localStorage.locations);
jQuery('#location_h option').eq(this.selectedIndex).prop('selected',true);
alert(localStorage.locations);
getsublocations_main(localStorage.locations); //ajax call for subloc
}
if(localStorage.subloc){
jQuery('#subloc_h option').eq(this.selectedIndex).prop('selected',true);
}
}
});
。这可能是类似的吗?
jQuery的:
<div class="row rowInput_spiti360">
<div class="ie_fix_select_spiti360" >
<div id="location_add_yo" class="mainselection" >
<select class=" searchcategory" name="location_h" id="location_h" onchange="getsublocations_main(this.options[this.selectedIndex].value)">
<option selected="selected" value="-1">Select a Town:</option>
</select>
</div>
</div>
</div>
<div class="row rowInput_spiti360">
<div class="ie_fix_select_spiti360" >
<div id="sublocation_add_yo" class="mainselection" >
<select id="subloc" name="subloc" class=" searchcategory">
<option selected="selected" value="-1">Select a sublocation:</option>
</select>
</div>
</div>
</div>
HTML:
{{1}}
答案 0 :(得分:1)
问题是this.selectedIndex
,此处this
指的是window
而不是html元素