如何从填充Ajax的下拉列表中更改selectedIndex?

时间:2015-07-20 08:25:43

标签: javascript jquery ajax

我有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}}

1 个答案:

答案 0 :(得分:1)

问题是this.selectedIndex,此处this指的是window而不是html元素