後端代碼:
/**
* 人員JSON
* @return
*/
@RequestMapping(value = "/list",method = RequestMethod.GET)
@ResponseBody
public String list(HttpServletRequest request) {
Long id = getCurrentUserId();
Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, "search_");
searchParams.put("EQ_deleteFlag", Constant.ENTERPRISE_NOT_DELETE);
searchParams.put("EQ_userId", id);//獲取該用戶下的記錄
String type = request.getParameter("type");
if(!(type==null || type.equals(""))){
searchParams.put("EQ_type", Integer.parseInt(type));
}
List<Personal> personalInfo = personalService.findAll(searchParams);
String json = JSONArray.fromObject(personalInfo).toString();
return json;
}
前端代碼:
//獲取駕駛員下拉框信息
var drivers;
$.ajax({
url:'${ctx}/personal/list?type=0',
type : 'get',
success : function(result) {
drivers = JSON.parse(result);
}
});
filter函數遍歷drivers集合。
var driver = $("#driver").combobox("getText");//車輛信息
var driverList = drivers.filter(function (num) {
return num.name === driver;
} );
if (driverList.length <= 0) {
$.messager.alert("警告", "請輸入正確的駕駛員信息!", "warning");
return;
}
如果後端返回的是map集合
/**
* 電子貨單中獲取下拉信息
* @param request
* @return
*/
@RequestMapping(value="/getVehsForEle",method=RequestMethod.GET)
@ResponseBody
public List<Map<String, Object>> getVehsForEle(HttpServletRequest request){
List<Map<String, Object>> maps = new ArrayList<Map<String,Object>>();
Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, "search_");
searchParams.put("EQ_deleteFlag", Constant.ENTERPRISE_NOT_DELETE);//獲取未刪除的記錄
searchParams.put("EQ_userId", getCurrentUserId());//獲取該用戶下的記錄
List<Vehicle> vehicles = vehicleService.findAll(searchParams);
for(Vehicle vehicle:vehicles){
Map<String, Object> map = new HashMap<String, Object>();
String color = "";
if(vehicle.getVehicleColor()==Constant.PLATE_COLOR_BLUE){
color = Constant.PLATE_COLOR_BLUE_;
}else if(vehicle.getVehicleColor()==Constant.PLATE_COLOR_YELLOW){
color = Constant.PLATE_COLOR_YELLOW_;
}else if(vehicle.getVehicleColor()==Constant.PLATE_COLOR_BLACK){
color = Constant.PLATE_COLOR_BLACK_;
}else if(vehicle.getVehicleColor()==Constant.PLATE_COLOR_WHITE){
color = Constant.PLATE_COLOR_WHITE_;
}
map.put("text", vehicle.getPlateNumber()+"("+color+")");
map.put("id", vehicle.getApprovedLoadQuality()+","+vehicle.getVehicleTypePolice()+","+vehicle.getUnitName()+","+(vehicle.getPlateNumber()+vehicle.getVehicleColor()) );
maps.add(map);
}
return maps;
}
前端處理:
var plateNumbers;
$.ajax({
url:'${ctx}/vehicle/getVehsForEle',
type : 'get',
success : function(result) {
/*爲easyui-combobox動態添加數據*/
plateNumbers = result;
$('#veh').combobox({
valueField:'id',
textField:'text',
data : result, /*這邊的result格式要爲標準的json格式,且有id和name兩個鍵*/
//獲取車輛下拉框信息
editable:true, //不可編輯狀態
cache: false,
panelHeight: '200',//自動高度適合
onHidePanel: function(){
var idlp = $('#veh').combobox('getValue');
var idlps = idlp.split(",");
$("#vehLoad").textbox('setValue',idlps[0]);
$("#vehType").textbox('setValue',idlps[1]);
$("#vehEn").textbox('setValue',idlps[2]);
},
//filter函數過濾作用
filter: function(q, row){
var opts = $(this).combobox('options');
//return row[opts.textField].indexOf(q) == 0;
return row[opts.textField].indexOf(q)>-1;//將從頭位置匹配改爲任意匹配
},
onSelect:function(record){
var switchValue = <%=TrafficPermitSwitchController.getSwitchValue()%>;
if(switchValue==1){ //開關打開;需要驗證
$.ajax({
type:'post',
async:false,
url:'${ctx}/vehicle/checkPermit',
data:{
licenseAll:record.text
},
success:function(data){
if(data && data==true){ //存在通行證
trafficPermitExist = true;
}else{ //沒有通行證
trafficPermitExist = false;
}
}
});
}else{ //開關關閉;
trafficPermitExist = true;
}
}
});
// console.log(result);
}
});
var plateNumberList = plateNumbers.filter(function (num) {
return num.text === veh;
} );
if (plateNumberList.length <= 0) {
$.messager.alert("警告", "請輸入正確的車牌號!", "warning");
return;
}
最終實現效果下拉框可以模糊搜索,提交時進行校驗,如果提交時下拉框的值是後臺有效的值提交,不是給出提示: