尝试使用select options标记和javascript根据州值加载城市
Trying to load cities based on state value using select options tag and javascript
我使用的是该网站的信息http://jsfiddle.net/Q6h5s/创建城市和州的下拉菜单。当选择该州时,应选择属于该州的城市。然而,所有城市都在加载。我对Javascript不太熟悉,所以我不知道我在哪里犯了这个错误。
这是我的代码
<script>
$("#state").change( function(){
if($(this).data('options') == undefined){
$(this).data('options',$('#city-name option').clone());
}
var id = $(this).val();
var options = $(this).data('options').filter('[state=' + id + ']');
$('#city-name').html(options);
});
</script>
State:
<select id="state">
<?php
$fs = new fsCreator();
$cityState = $fs->loadCityState();
$dbh = new DatabaseHandler();
echo '<option value="0">State</option>';
$temp = null;
$sep = ',';
$index = 0;
$max = sizeof($cityState);
for($i = 0; $i< $max; $i++){
if(!($temp == substr($cityState[$i], 0, strpos($cityState[$i], $sep)))){
$index++;
$temp = substr($cityState[$i], 0, (strpos($cityState[$i], $sep)));
echo '<option value="'.($index).'">'.(substr($cityState[$i], 0, strpos($cityState[$i], $sep))).'</option>';
}
}
?>
</select>
City:
<select id="city-name">
<?php
$index = 0;
$cityIndex = 0;
$temp = null;
for($i = 0; $i < $max; $i++){
if(!($temp == substr($cityState[$i], 0, strpos($cityState[$i], $sep)))){
$index++;
$temp = substr($cityState[$i], 0, strpos($cityState[$i], $sep));
}
$cityIndex++;
echo '<option state="'.($index).'value="'.($cityIndex).'">'.(substr($cityState[$i], (strpos($cityState[$i], $sep)) + 1)).'</option>';
}
?>
</select>
state
属性设置不正确,这是您用来筛选的属性。
你在它的末尾错过了一个"
。
echo '<option state="'.($index).'" value="'.($cityIndex).'">'.(substr($cityState[$i], (strpos($cityState[$i], $sep)) + 1)).'</option>';
^^
此外,您还试图在创建对象之前将事件处理程序绑定到对象
有不同的方法来解决这个
事件委托,将处理程序绑定到文档
$(document).on("change","#state", function(){ if($(this).data('options') == undefined){ $(this).data('options',$('#city-name option').clone()); } var id = $(this).val(); var options = $(this).data('options').filter('[state=' + id + ']'); $('#city-name').html(options); });
使用文档加载事件
$(document).ready(function(){ $("#state").change( function(){ if($(this).data('options') == undefined){ $(this).data('options',$('#city-name option').clone()); } var id = $(this).val(); var options = $(this).data('options').filter('[state=' + id + ']'); $('#city-name').html(options); }); });
将代码放在标记中的元素之后
State: <select id="state"> ... </select> <script> $("#state").change( function(){ if($(this).data('options') == undefined){ $(this).data('options',$('#city-name option').clone()); } var id = $(this).val(); var options = $(this).data('options').filter('[state=' + id + ']'); $('#city-name').html(options); }); </script>
相关文章:
- JavaScript-如何从谷歌自动执行API获得城市名称建议
- 如何在城市和州代码之间用逗号将城市和州从短划线格式化为空格.(javascript)
- 我应该在Google Api javascript中进行什么更改,以便它只能显示印度城市,而不能落后于州和印度
- 在 asp.net 中用javascript填充国家和城市下拉列表
- 使用javascript、jquery和PHP自动完成从数据库中提取城市的输入
- javascript从所选国家/地区值中选择城市
- 使用JavaScript动态选择国家城市
- 显示Maxmind Geoip2显示国家,城市,地区和ISP与Javascript
- 尝试使用select options标记和javascript根据州值加载城市
- 使用城市名称在地图上放置标记,而不是在javascript映射库中使用latin和Long
- Javascript,使用地理位置获取城市名称
- 我如何找到网站访问者的位置(仅城市)使用javascript或PHP
- 地图JavaScript API自动完成-一个国家的城市
- Javascript中城市、州的正则表达式
- Javascript将条目与正确答案(从城市到国家)进行匹配
- 从输入javascript的邮政编码中获取城市和州
- jQuery/JavaScript验证城市,州ZIP单字段
- 从JavaScript函数中提取国家、州、城市和地区的信息,这些信息在Spring mvc中直接给出了完整的地址
- 如何解析多维链接的国家/城市.Json到下拉列表很容易使用javascript或jquery
- 如何在谷歌地图API Javascript中获得城市GPOINT