使用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>";