前台jsp:
<input type="text" name="bigCategoryName" id="bigCategoryName" AutoComplete="off"
value="${bigCategoryName}" style="width:150px" maxlength="20" list="second"
oninput="firstSel()"/>
<div style="display: none;">
<datalist id="second" ></datalist></div>
注意:AutoComplete="off"的作用是屏蔽掉瀏覽器本身的模糊匹配以前的輸入記錄,原來默認是on。
oninput=""要用oninput事件監測輸入框實時輸入數據。
<datalist>中的id與input標簽中的list=“”綁定,用於顯示ajax從后台獲取的數據。
<div>標簽主要是為了將datelist包裹並設置 style="display: none"隱藏屬性。
js代碼:
function firstSel() {//如果第一個下拉列表的值改變則調用此方法
var orderTypeName = $("#first").val();//得到第一個下拉列表的值
var url = "/XXX/xxx.do";
if(orderTypeName!=null && "" != orderTypeName&& -1 != orderTypeName){
//通過ajax傳入后台,把orderTypeName數據傳到后端
$.post(url,{orderTypeName:orderTypeName},
function(data){
var res = JSON.parse(data);
/* var res = $.parseJSON(data); *///把后台傳回的json數據解析
var option;
$.each(res,function(i,n){//循環,i為下標從0開始,n為集合中對應的第i個對象
option += "<option value='"+n.smallCategoryName+"'>"+n.smallCategoryName+"</option>"
});
$("#second").html(option);//將循環拼接的字符串插入第二個下拉列表
$("#second").show();//把第二個下拉列表展示
});
}
