使用JQuery生成动态选择列表项菜单

这是Div:

<select name="CountryID" id="CountryID">
<option value="" id="">Select the Country</option>
......
</option>
</select>
<div id='result' name="result">
<select  id="name">
<option value="" disabled>Please select above</option>
</select>
</div>
<div id='resulta' name="resulta">
<select  id="name">
<option value="" disabled>Please select above</option>
</select>
</div>


这是我的脚本:

<script>
var ab=$.noConflict();
ab(document).ready(function(){
ab("#CountryID").change(function(){
    var CountryID=ab("#CountryID").val();
    ab.post("globalregiongenerator",
    {
      CountryID:CountryID
    },
    function(data,status){
       ab( "#result" ).html( data );
    });
  });
});
</script>


<script>
var ac=$.noConflict();
ac(document).ready(function(){
  ac("#RegionName").change(function(){
  //alert('action triggered');
    var RegionName=ab("#RegionName").val();
    ac.post("globalcitygenerator",
    {
      RegionName:RegionName
    },
    function(data,status){
       ac( "#resulta" ).html( data );
    });
  });
});
</script>


在这里,我生成我的选择菜单列表

public function globalregiongenerator()
    {
    $CountryID = Input::get('CountryID');
    $roles = DB::table('region')->where('CountryID', $CountryID)->lists('regionname','regionid');
    echo "<select  id='RegionName' name='RegionName'>";
    foreach ($roles as $value)
    {
    echo "<option value=".$value.">".$value."</option>";
    }
    }

public function globalcitygenerator()
    {
    $RegionName = Input::get('RegionName');
    $roles = DB::table('city')->where('RegionName', $RegionName)->lists('regionname','regionid');
    echo "<select  id='CityName' name='CityName'>";
    foreach ($roles as $value)
    {
    echo "<option value=".$value.">".$value."</option>";
    }
    }


我可以生成“第一选择菜单列表项”,但是即使我尝试在其中添加警报,动作ac("#RegionName").change(function(){也不会触发。

页面中未创建第二个列表菜单项<select id='RegionName' name='RegionName'>还是什么?

我怎样才能做到这一点 ?

注意 :

我什至在ab('#RegionName').selectmenu('refresh', true); from this answer下尝试了ab( "#result" ).html(data);,但是没有用

更新:

如果我们添加$( "#result" ).append ( data );另一个菜单将出现,那不是我所需要的。
我需要已经存在的前三个菜单。

最佳答案

看来您没有关闭<select,我想您也需要echo </select>。对于处理程序,请尝试

ac(document).on("click", "#RegionName"


您也有一个var RegionName=ab("#RegionName").val();应该是var RegionName=ac("#RegionName").val();

更新:

线应该是

RegionName=ac(this).val();

更新2

更改

echo "<option value=".$value.">".$value."</option>";




echo "<option value='".$value."'>".$value."</option>";

09-16 12:41