combobox总结

想做这样的效果,思路:、

1.数据库表应该这样建立:

注:不仅保存名称、还有id.

2.前台页面写法

<td>
      <input class="easyui-combobox" name="achievement_position_id" 
          id="achievement_position_id" value='${(m.achievement_position_id)!}' data-options="panelHeight:200,width:200,required:true" />
      <input type="hidden" name="achievement_position" id="achievement_position" value='${(m.achievement_position)!}'/>
</td>

3.字典表

"select PARAMKEY as id ,PARAMNAME as text ,id as paramId from DT_BASE_PARAM where STATE=0 and  pid=(select id from DT_BASE_PARAM where PARAMKEY='"+paramkey+"' and STATE=0) order by SEQ asc";

返回json字符串。

4.js写法

$(function(){
	//绑定职务
	bindPosition('achievement_position_id','achievement_position');
	
});
function bindPosition(id,txtid){
	var url;
	//1 施工标段  2,监理标段 , 3,设计标段
	if("${segment_typeid!}"=="1"){
		url='${MH}/param/bingkeyComList/position13';
	}else if("${segment_typeid!}"=="2"){
		url="${MH}/param/bingkeyComList/position14";
	}else if("${segment_typeid!}"=="3"){
		url="${MH}/param/bingkeyComList/position12";
	}else if("${segment_typeid!}"=="4"){
		   url='${MH}/param/bingkeyComList/position13';
	   }
	$("#"+id).combobox({
		url:url,
		valueField: 'id',
		textField: 'text',
		disabled: false,
		required:true,
		panelHeight:200,
		editable:false,
		//注册事件
		filter: function(q, row){
    		var opts = $(this).combobox('options');
    		return row[opts.textField].indexOf(q) == 0;
    	},
        onSelect:function(node) {
			$('#'+txtid).val(node.text);
 	    }
	});
}

5.combobox会根据id值绑定对应的值(比如id值为51,而url远程获取的数据有ID为51,则显示51对应的项目总监;否则只显示51)

猜你喜欢

转载自blog.csdn.net/l_degege/article/details/86064756