这个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自己默认选择省市区。谢谢
$(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自己默认选择省市区。谢谢
解决方案 »
- 如何 在jsp里 动态加载数据库的数据?
- 可编辑层光标如何定位?谢谢
- 5555555听大家的选择了Fckediter啊,可是用Fckediter以后就开始郁闷了啊!跪求啊!55
- document.getElementsByTagName("script")不可以用吗?
- 再线急等,请各位大虾帮忙
- 无法传值问题,高手急救!!!!!!!!!
- 再请问一个问题
- 动态取得客户端调试信息的工具(ACCESS版,原代码)--立刻可以使用。请近来取,和UP。
- text-overflow 属性问题
- 文件上传IE8执行时new ActiveXObject("Scripting.FileSystemObject")无法创建对象
- javascript日历 求助各位兄弟姐妹
- 怎样用Jquery定位特定div里的某个id项
首先当文档载入后台的时候你要 请求一次后台
返回格式为{“省”:“1” ,“市”:2 ,“区”:3}
之后用juqery.parseJSON(obj) 转换为json 对象
之后取得 省市的值 区的值
之后取得 select的对象 用$("select").val(obj.省);
之后类同 希望对你有帮助!
不好意思 没懂
我这个在后台查完后 传过来一个对象address 里面有province,city,address,这三个值是我要在select中显示的,请问怎么弄
由于不是自己写的 是改别人的 字段有重复 请见谅
我在后台查出一个对象address 里面有 province,city,address(县),要怎么判断,希望详细点
由于是改别人的代码,里面字段混乱,见谅,等回复
那数据库里面至少也应该存在 省份的字段是 1 市的字段是2 -- 这代表是你选中的记录
所以文档加载的时候你要把你选中的数据 读出来 这后让这个select 默认选中你数据库中的值。。
$(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>");///////////
});
}
});
}
);
});
这三个数据你是有的了。省市两级的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事件不会被触发