select option 默认选中

阿程 2012-08-21 02:14:28
这个select级联菜单是通过解析xml完成的

<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml) {
$(xml).find("province").each(function(){
var t = $(this).attr("name");
$("#DropProvince").append(
"<option>" + t + "</option>");
});

}
});

//二级的菜单
$("#DropProvince").change(
function() {
$("#sCity>option").remove();
var pname = $("#DropProvince").val();
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml){
$(xml).find("province[name='" + pname+ "']>city").each(function(){
var c = $(this).attr("name")
$("#sCity").append("<option>"+ c + "</option>");
});
}
});
}
);
//三级的菜单
$("#sCity").change(
function() {
$("#sAddress>option").remove();
var pname1 = $("#sCity").val();
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml) {
$(xml).find("city[name='" + pname1+ "']>address").each(function(){
var d = $(this).attr("name")
$("#sAddress").append("<option>"+ d + "</option>");
});
}
});
}
);
});
</script>



<tr>
<td align="center">省:        <select id="DropProvince" name="province"><option>请选择</option></select></td>
</tr>
<tr>
<td align="center">市:        <select id="sCity" name="city"><option>请选择</option></select></td>
</tr>
<tr>
<td align="center">区/县:        <select id="sAddress" name="address"><option>请选择</option></select></td>
</tr>


我要修改数据的时候,要把修改前的数据带出来。 比如现在在数据库中查出 省是黑龙江 市是哈尔滨 区是南岗区
怎样让select自己默认选择省市区。谢谢
...全文
4486 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
duguqiubai2 2012-10-30
  • 打赏
  • 举报
回复
你的问题搞定了吗?我也碰到同样的问题了
泡泡鱼_ 2012-10-08
  • 打赏
  • 举报
回复
省是黑龙江 市是哈尔滨 区是南岗区
这三个数据你是有的了。省市两级的onchange你也是写了的

方法就很简单了
1:将以上三个数据做个定义,比如:var defProvince='黑龙江',defCity='哈尔滨',defArea='南岗区
'
2:保证正确的定义了省市两级的onchange事件的内容主体
3:初始化省级数据,先初始化填充数据之后,如果defProvince值不为空,直接使用$('id').val(defProvince)选中其对应的,被选中后,onchange事件将被触发。异步获取对应的市级数据以后,如果defCity值不为空,也选中其对应的。如果有被选中的,那么市级的onchange事件也将被触发。就获取地区的数据了,再判断defArea是否为空,不为空也选中它
4:每当选中了一个初始化的值以后,就清空那个初始化的值。比如初始化选中了defProvince以后,设置defProvince=''

因为select中使用$(id).val(defValue)时,如果在对应的select中没有相应的值时,选项是不会发生任何变化的。也就是说,onchange事件不会被触发
Go 旅城通票 2012-10-08
  • 打赏
  • 举报
回复
   var pro='黑龙江',city='哈尔滨',area='南岗区'//将读出的值赋值给这3个变量,添加option的时候对比下相同添加selected属性
$(document).ready(function(){
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml) {
$(xml).find("province").each(function(){
var t = $(this).attr("name");
$("#DropProvince").append(
"<option"+(t==pro?' selected':'')+">" + t + "</option>");///////////
});

}
});

//二级的菜单
$("#DropProvince").change(
function() {
$("#sCity>option").remove();
var pname = $("#DropProvince").val();
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml){
$(xml).find("province[name='" + pname+ "']>city").each(function(){
var c = $(this).attr("name")
$("#sCity").append("<option"+(c==city?' selected':'')+">"+ c + "</option>");/////////
});
}
});
}
);
//三级的菜单
$("#sCity").change(
function() {
$("#sAddress>option").remove();
var pname1 = $("#sCity").val();
$.ajax({
url : "${request.contextPath}/xml/address.xml",
success : function(xml) {
$(xml).find("city[name='" + pname1+ "']>address").each(function(){
var d = $(this).attr("name")
$("#sAddress").append("<option"+(d==area?' selected':'')+">"+ d + "</option>");///////////
});
}
});
}
);
});
cpu37king 2012-10-08
  • 打赏
  • 举报
回复
select 默认选中问题的解决,分享一下解决办法,http://www.betterhelper.net/bencandy.php?fid=86&id=3501,,自己真实检验过代码的,可以用的
cpu37king 2012-10-08
  • 打赏
  • 举报
回复
select 默认选中问题的解决,分享一下解决办法,http://www.betterhelper.net/bencandy.php?fid=86&id=3501,,自己真实检验过代码的,可以用的
jacc11111 2012-08-21
  • 打赏
  • 举报
回复
province,city,address(县) 比如说 你选择了黑龙江 哈尔滨
那数据库里面至少也应该存在 省份的字段是 1 市的字段是2 -- 这代表是你选中的记录
所以文档加载的时候你要把你选中的数据 读出来 这后让这个select 默认选中你数据库中的值。。
阿程 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

首先以上的3个ajax 异步是返回下拉列表的 下拉值
首先当文档载入后台的时候你要 请求一次后台
返回格式为{“省”:“1” ,“市”:2 ,“区”:3}
之后用juqery.parseJSON(obj) 转换为json 对象
之后取得 省市的值 区的值
之后取得 select的对象 用$("select").val(obj.省);
之后类同 希望对你有帮助!
[/Quote]
不好意思,没懂
我在后台查出一个对象address 里面有 province,city,address(县),要怎么判断,希望详细点
由于是改别人的代码,里面字段混乱,见谅,等回复
阿程 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

首先以上的3个ajax 异步是返回下拉列表的 下拉值
首先当文档载入后台的时候你要 请求一次后台
返回格式为{“省”:“1” ,“市”:2 ,“区”:3}
之后用juqery.parseJSON(obj) 转换为json 对象
之后取得 省市的值 区的值
之后取得 select的对象 用$("select").val(obj.省);
之后类同 希望对你有帮助!
[/Quote]

不好意思 没懂
我这个在后台查完后 传过来一个对象address 里面有province,city,address,这三个值是我要在select中显示的,请问怎么弄
由于不是自己写的 是改别人的 字段有重复 请见谅
jacc11111 2012-08-21
  • 打赏
  • 举报
回复
首先以上的3个ajax 异步是返回下拉列表的 下拉值
首先当文档载入后台的时候你要 请求一次后台
返回格式为{“省”:“1” ,“市”:2 ,“区”:3}
之后用juqery.parseJSON(obj) 转换为json 对象
之后取得 省市的值 区的值
之后取得 select的对象 用$("select").val(obj.省);
之后类同 希望对你有帮助!

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧