【发布时间】:2015-01-11 16:55:31
【问题描述】:
这是Question的延续
这是动态 JQuery 选项选择生成器的代码。
首先我将选择国家,我没有包含代码,它将返回传递给控制器的 CountryID,然后是 RegionID,然后是 CityID。在生成 CityID 选项选择菜单之前,它运行良好,而我移动到 AreaID 时它不起作用。
我缺少什么,我该如何解决?
我无法在第三个 Second One 之后生成菜单。
这是 HTML:
<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>
<div id='resultb' name="resultb">
<select id="name">
<option value="" disabled>Please select above</option>
</select>
这是我的脚本:
<script>
var ab = $.noConflict();
ab(document).ready(function() {
ab(document).on("change", "#CountryID", function() {
var CountryID = ab("#CountryID").val();
ab.post("globalregiongenerator", {
CountryID: CountryID
},
function(data) {
ab("#result").html(data);
});
});
});
</script>
<script>
var ac = $.noConflict();
ac(document).ready(function() {
ac(document).on("change", "#RegionName", function() {
var RegionName = ac("#RegionName").val();
ac.post("globalcitygenerator", {
RegionName: RegionName
},
function(data) {
ac("#resulta").html(data);
});
});
});
</script>
<script>
var ad = $.noConflict();
ad(document).ready(function() {
ad(document).on("change", "#CityName", function() {
var CityName = ad("#CityName").val();
ad.post("globalareagenerator", {
CityName: CityName
},
function(data) {
ad("#resultb").html(data);
});
});
});
</script>
这里是服务器端:
public function globalregiongenerator()
{
$CountryID = Input::get('CountryID');
$result = DB::select("SELECT * FROM region where CountryID =$CountryID");
echo "<select id='RegionName' name='RegionName'> <option value='' id=''>Select the Area</option>";
foreach ($result as $value)
{
echo "<option value=".$value->RegionID.">".$value->RegionName."</option>";
}
echo "</select>";
}
public function globalcitygenerator()
{
$RegionID = Input::get('RegionName');
$result = DB::select("SELECT * FROM city where RegionID =$RegionID");
echo "<select id='CityName' name='CityName'> <option value='' id=''>Select the Area</option>";
foreach ($result as $value)
{
echo "<option value=".$value->CityID.">".$value->CityName."</option>";
}
echo "</select>";
}
public function globalareagenerator()
{
$CityID = Input::get('CityName');
$result = DB::select("SELECT * FROM area where CityID =$CityID");
echo "<select id='CityName' name='CityName'> <option value='' id=''>Select the Area</option>";
foreach ($result as $value)
{
echo "<option value=".$value->CityID.">".$value->CityName."</option>";
}
echo "</select>";
}
注意:
Uncaught TypeError: undefined is not a function
这是我在控制台中遇到的错误
【问题讨论】:
-
附注:如果与
$发生冲突,$.noConflict将不起作用(应该是jQuery.noConflict())。您还可以使用 快捷方式 DOM 就绪处理程序jQuery(function($){ YOUR CODE USING A LOCAL $ });为您的代码提供本地范围的$。 -
请在浏览器中从页面中“另存为”,然后向我们展示 jQuery 看到的生成的 HTML。 :)
-
@TrueBLueAussie :我应该用 jQuery.noConflict 替换 $.noConflict 的所有元素吗?
-
更简单、更智能地使用这种 DOM 就绪处理程序语法:
jQuery(function($){ YOUR CODE USING A LOCAL $ });(但是,是的,您可以只使用jQuery.noConflict()) -
感谢您的建议,我的问题“未定义”错误已解决。
标签: javascript php jquery html laravel-4