业务描述:此页面采用三个ajax请求
获得资费项目,
根据资费项目后台获得下拉列表项,
根据选中下拉列表项获得资费,
$(function(){
//动态创建下拉列表
$.ajax({
url:"getChargeList.do",
data: {},
type:"GET",
dataType:"json",
async:false, //加锁,在执行结束后,执行$(document).ready(function{})
beforeSend:function(jqXHR){
},
success:function(data){
$.each(data, function (i, item) { //遍历json对象
$("#s").append("<option value='"+item.cmchChargeCode+"'>"+item.chargeName+"</option>"); //动态给select添加option
});
},
error:function(xhr,status,errorThrown){
alert("1 error status:"+status+",error:"+errorThrown+",state:"+xhr.readyState);
}
})
//获得当前选中的项目的资费
$("#s").change(function(){
var o=$("#s").val(); //select的val就是当前选中的option的val
$.ajax({
url:"getCharge.do",
data: {charCode:o},
type:"GET",
dataType:"text",
beforeSend:function(jqXHR){
},
success:function(json){
$("#sfje").val(json);
},
error:function(xhr,status,errorThrown){
alert("2 error status:"+status+",error:"+errorThrown+",state:"+xhr.readyState);
}
})
})
//获得资费项目
$.ajax({
url:"getChargeRule.do",
data: {},
type:"GET",
dataType:"text",
beforeSend:function(jqXHR){
},
success:function(json){ //json操作复选框,用两个遍历
var s=json.split(','); //分隔字符串为数组,split
$(s).each(function(i,n){
$("[name='C1']").each(function(){ //利用name选中所有的复选框
if($(this).val()==n){
$(this).prop("checked",true); //prop设置checked true
}
})
})
},
error:function(xhr,status,errorThrown){
alert("3 error status:"+status+",error:"+errorThrown+",state:"+xhr.readyState);
}
})
})
$(document).ready(function(){ //在以上获得list的ajax执行后,页面加载后就获取一次资费
$("#s").trigger("change"); //trigger执行一次change
});
后台:list转换json对象
ObjectMapper om=new ObjectMapper(); //先用ObjectMapper转换
String str=om.writeValueAsString(l); //l是list对象
response.setContentType("text/plain;charset=UTF-8");
PrintWriter pw=response.getWriter(); //用PrintWriter输出
pw.print(str);
pw.flush();
pw.close();
感谢您的阅读。祝我找到工作。