easyui的combobox同時實現多選和手寫,以及剪切板複製datagrid表格數據

html代碼:css

後臺傳入的object.indexs是一個數組,在JS接受以後,是一個字符串,因此在賦值給combobox的時候須要手動分割成數組:html

<s:select name="object.indexs" list="indexKeywordList" theme="simple" cssClass="__combobox"
     data-options="panelHeight:200" cssStyle="width:300px" multiple="true"/>
<input type="hidden" value="<s:property value="object.indexs"/>" id="myIndexWord"/>

JS代碼:數組

var val = $('#myIndexWord').val();
$('.__combobox').combobox({
	onHidePanel:function(){
		var inputVal = $(this).next('span').children("input:eq(0)")[0].value;//下拉框的input框中顯示值
		if(inputVal){
			var arr = inputVal.split(",");
			var newArr = new Array();
			for(var i = 0;i<arr.length;i++){
				if(arr[i].indexOf("[") != -1){
                    //下拉框的面板中的值的構成爲:key-key[text],例如爲:1-1[選項1],表示key爲1,text爲1[選項1]
				    arr[i] = arr[i].substring(0,arr[i].indexOf("["));//因此這裏須要把"[]"去除,保存的時候設置的值爲"[]"前面的值便可
				}
				newArr.push(arr[i].replace(/\s/g, ""));//去除空白字符
			}
		}
		$(this).combobox('setValues',newArr);//設置下拉框的values
		$(this).combobox('setText',inputVal);

    },
	onLoadSuccess:function(){
        //後臺傳入的數組在這裏接受以後,已是這種格式:[aaa,bbb],因此賦值的時候先要去除"[]"
		if(val){
			val = val.replace("[","").replace("]","");
			var valArray = val.split(",");
			var array = [];
			for(var i = 0;i<valArray.length;i++){
				array[i] = valArray[i];
			}
			$(this).combobox("setValues",array);
		}
	}
});

例如:ide

附上一段項目中的easyui的datagrid的右鍵菜單"複製算式"到剪切板的代碼:ui

if(rowData.opinion){
	if(window.clipboardData){  
		//IE  
		window.clipboardData.setData("text" , rowData.opinion);  
	}else{  
		function handler(event) {
			event.clipboardData.setData('text', rowData.opinion);
			document.removeEventListener('copy', handler, true);
			event.preventDefault();
	    }
		document.addEventListener('copy', handler, true);
		document.execCommand('copy');
	}
	$.easyui.messager.show({ icon: "info", msg: "剪切板複製算式成功!", position: "topCenter" ,timeout:3000});
}
相關文章
相關標籤/搜索