代码之家  ›  专栏  ›  技术社区  ›  IseNgaRt

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

  •  0
  • IseNgaRt  · 技术社区  · 9 年前

    我有3个下拉列表,其中包含国家的地区、位置和子位置。 我使用Ajax在某人从第一个列表中选择某个内容后填充位置和子位置列表。

    现在谈谈我的问题:

    我正在使用 LocalStorage 因此,当刷新页面时,我可以保留这些值,并使用最后选择的值自动重新填充列表。

    列表已成功填充,但无法更改 selectedIndex (选择“选择城镇/选择子区域”)。

    我尝试了我在stackoverflow找到的关于如何改变的每一种方法 选定索引 他们中没有一个工作,也没有一个给我带来错误。 所以我可以假设 ajax ? 像js这样的东西改变了 选定索引 但是 ajax 即使 ajax 早于第一次调用。这样的事情可能吗?

    jQuery:

    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);
      }
    
    }
    });
    

    HTML格式:

    <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> 
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   user2575725 user2575725    9 年前

    问题是 this.selectedIndex 在这里 this 指的是 window 而不是html元素