文本框内具有联想的下拉菜单
今天用的是selectize.js插件
<script> $(function () { $("#DicOrg").selectize(); var $select = $("#selDept").selectize({ valueField: 'id', labelField: 'title', searchField: 'title' }); var control = $select[0].selectize; $("#DicOrg").change(function () { var param = { orgid: $(this).find("option:selected").val() }; $.getJSON("/Home/GetDept", param, function (data) { //var str = "<option value=''>请选择</option>"; //for (var i = 0; i < data.length; i++) { // str += "<option value='" + data[i].dept_id + "'>" + data[i].dept_name + "</option>"; //} //$("#selDept").html(str); debugger; control.clearOptions(); control.addOption(data); }); }) }) </script>
clearOptions():清除select下的option,清除之后就没有任何option可选了
addOption():添加option
addItem(2):选择value=’2’的option
success: function(res) { // res是list集合中存放map,map key:cityId,map value:cityName // 重新生成option之前先清除前面生成的option
control.clearOptions(); for(var i = 0; i < res.length; i++){
control.addOption({
id : res[i]["cityId"],
title : res[i]["cityName"],
});
}
},
这两种添加option的方式都是一样的
代码段中里的data返回的就是一个json串 里面包含着id 和 title
public ActionResult GetDept(string orgid) { List<hos_dic_dept> lstDept = dicDal.GetDept(x => x.org_id == orgid.Trim(), 0); var result = from x in lstDept select new { id = x.dept_id, title = x.dept_name }; return Json(result, JsonRequestBehavior.AllowGet); }
然后前台的效果就可以出来了