写了一段js代码未实现一个下拉列表的选择框,但是在这个过程中出现一个错误,寻找了需求。
function GetType(){
var tId = $("#typeId").val();
var options = "<option value=''>--请选择--</option>";
var select = $("#selecttype");
select.empty();
$.post("${pageContext.request.contextPath}/car/getType.action",function(data){
$.each(data,function(i,item){
if(tId == item.dict_id){
options += "<option selected value=" + item.dict_id + ">" + item.dict_item_name + "</option>";
}else{
options += "<option value=" + item.dict_id + ">" + item.dict_item_name + "</option>";
}
});
select.append(options);
},"json");
}
然而,正确的却是这样
function GetType(){
var tId = $("#typeId").val();
var options = "<option value=''>--请选择--</option>";
var select = $("#selecttype");
select.empty();
$.post("${pageContext.request.contextPath}/car/getType.action",{},function(data){
$.each(data,function(i,item){
if(tId == item.dict_id){
options += "<option selected value=" + item.dict_id + ">" + item.dict_item_name + "</option>";
}else{
options += "<option value=" + item.dict_id + ">" + item.dict_item_name + "</option>";
}
});
select.append(options);
},"json");
}
不仔细是发现不了区别的。
这样两个请求都是能够获取到数据,但是,前者返回的data却不能够被正常解析为json,而是作为字符串解析的。
目前还没查询原因,只能确认这个事实:
想要好好使用ajax的post提交,无论有没有参数,请都别忘记‘{}’