国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于jQuery下拉選擇框插件支持單選多選功能代碼

2019-11-20 09:45:47
字體:
來源:轉載
供稿:網友

由于最近項目的需求,需要做一個下拉選擇框的插件,支持單選顯示表單數據,多選顯示表格數據,該插件主要運用了jQuery與jqgrid以及easyui。

下面給大家展示下效果圖,如果大家感覺還不錯,請參考實現代碼:



多選:呈現列表


具體代碼如下所示:

/**  *下拉框插件-chooseList  *調用插件的方式以及格式:  * 1.首先你需要創建一個div面板,給div定義ID  * 2.在你所需要的地方調用插件:  * 參數說明:  * $("#divID").chooseList({  * query_url :加載下拉框數據的URL,指定你所寫編寫的controller地址,如果URL為空則使用插件提供的默認URL  * divID:divID  * sidx:排序字段,默認罪犯編號  * sord:排序類型,默認desc  * postData: postData: {filters:JSON.stringify(filters)} 自定義查詢條件  * filters的格式如下  *  var rules = [];    rules.push({"field":"gydwName","op":"cn","data":"xxxx"});    var filters = {"groupOp":"AND","rules":rules};    isMultiselect:是否多選,默認單選false  *    *  })  *  *  */ (function ($) {   $.fn.extend({     chooseList: function (options) {       //產生隨機數       var random =Math.floor(Math.random()*100000+1);       /**       * 自定義參數,需要使用其中的屬性直接:customparams.屬性名       */       var customparams = {         resultObj : {},//存儲單選選擇的后的數據,返回給外界調用者使用         resultListObj : new map(),//存儲多選選擇的后的數據,返回給外界調用者使用         currentTag : this,//當前標簽對象         formID: "form_"+random,         chooseID : "sel"+"_"+random,//下拉選擇框的ID         gridID :"grid"+"_"+random,//dataGrid的ID         pager : "pager"+"_"+random,//分頁ID         countRow :0//計數行號,默認為0       };       /**       * 參數和默認值       */       var defaults = {         _search:"false",         //如果未傳入url,則使用默認的url進行查詢         query_url :contextPath + "/chooseCriminal",         sidx:"bh",//排序字段,默認根據罪犯的編號bh         sord: "desc",//排序類型:升序,降序 ,默認降序         isMultiselect:false,//是否多選,默認單選       };       /**       * 裝載默然參數和傳人的參數對象       */       var options = $.extend(defaults, options);        /**       * 解析載入參數       * @param query_url 請求的地址       * @param flag 標識是第一次加載表格還是模糊查詢加載表格數據       */       var bindParams = function(query_url){         var params="";//存儲解析的參數         for(var attr in options){           var key = attr;           var value = options[attr];           if(value != "" && !(value instanceof Object)&key!="query_url"&&key!="divID"&&key!=false){             params+=key+"="+value+"&"           }else if(value instanceof Object){             params+=$.param(value)+"&"            }else if(key=="_search"&&value==false){             params+=key+"=false&";           }         }         var finalParams =query_url+"?"+params.substring(0,params.length-1);         return finalParams;        };      /**       * 綁定選擇罪犯combogrid       */      var renderComboGrid = function(){           $("#"+customparams.chooseID).combogrid({           panelWidth: 500,           idField: 'bh',//id           textField: 'xm',//input顯示值           pagination : true,//是否分頁            pageSize: 10,//每頁顯示的記錄條數,默認為10             rownumbers:true,//序號           url: bindParams(options.query_url),           method: 'get',           fitColumns: true,           columns: [[             {field:'xm',title:'姓名',width:80},             {field:'bh',title:'編號',width:120},             {field:'gydwName',title:'單位',width:80},           ]],           keyHandler:{              query:function(keyword){//動態搜索                var value =keyword;                //裝載動態輸入參數                if(options.postData!=null&&options.postData!=undefined){                  var oldRules = JSON.parse(options.postData.filters);                  var newRules =[                         {"field":"xm","op":"cn","data":value},                           (oldRules.rules)[0]                         ];                   var filters = {"groupOp":"AND","rules":newRules};                   options = $.extend(defaults, {postData: {filters:JSON.stringify(filters)}});                 }else{                   var newRules =[                        {"field":"xm","op":"cn","data":value}                       ];                    var filters = {"groupOp":"AND","rules":newRules};                   options = $.extend(defaults, {queryData: {filters:JSON.stringify(filters)}});                 }                //將輸入的值設置至輸入框中                $("#"+customparams.chooseID).combogrid('setValue', value);                //重新請求后臺加載表格                $("#"+customparams.chooseID).combogrid("grid").datagrid({url:bindParams(options.query_url)});                         }                 },           onSelect:function(){//選中事件                  var bh= $("#"+customparams.chooseID).combogrid('grid').datagrid('getSelected').bh;//獲取選中行數據的編號                   //根據罪犯編號獲取罪犯的詳細信息ajax                 $.ajax({                   type : 'POST',                   url : contextPath + "/chooseList/query",                   data :{bh:bh},                   success : function(data) {                     //填充表單                     PlatformUI.populateForm(customparams.formID, data);                     //轉換對象中包含時間類型的數值                     convertDateObject(data);                     //判斷當前用戶引用的是單選,還是多選                     if(options.isMultiselect==false){//單選                       $.extend(customparams.resultObj, data);                     }else{//多選                        addRowData(data);                        $.extend(customparams.resultListObj, data);                      }                     }                    });               }              });         };      /**       * 添加表格的行信息       * @param data 數據集       */      var addRowData = function(data){         //判斷當前對象是否已經存在resultesObj中,如果存在則不保存,反之則保存         if(!(customparams.resultListObj.containsKey(data.bh))){           customparams.resultListObj.put(data.bh,data);           //獲取行數據           var rowData = {xm:data.xm, bh:data.bh, gydwName:data.gydwName};           customparams.countRow = customparams.countRow+1;           //添加行            $("#"+customparams.gridID).addRowData(customparams.countRow, rowData);            var totalRecord = customparams.resultListObj.size();//總條數         }else{           //提示           toastr.warning("數據已被選擇!");           return;         }      };      /**       * 刪除行指定列       * @param bh 編號       * @param rowId 行ID      */      var deleteRow = function(bh,rowId){         //刪除集合中的元素         customparams.resultListObj.remove(bh);          //刪除表格中的行         $("#"+customparams.gridID).delRowData(rowId);         //更改行號         customparams.countRow = customparams.countRow - 1;               };        /**        * 轉換對象時間戳類型的為yyyy-mm-dd字符串        * @parma data 數據        */       var convertDateObject = function(data) {          if(data.rjrq!=null&&data.rjrq!=undefined){            $("#rjrq").val(DateToString(new Date(data.rjrq)));          }          if(data.csrq!=null&&data.csrq!=undefined){             $("#csrq").val(DateToString(new Date(data.csrq)));           }          if(data.dqxqqr!=null&&data.dqxqqr!=undefined){            $("#dqxqqr").val(DateToString(new Date(data.dqxqqr)));          }          if(data.dqxqzr!=null&&data.dqxqzr!=undefined){             $("#dqxqzr").val(DateToString(new Date(data.dqxqzr)));          }       };       /**        * 日期類型轉換成字符串型格式yyyy-MM-dd        * @param DateIn 轉換對象        *              */       var DateToString = function(DateIn) {             return DateIn.getFullYear()                 + '-'                 + (DateIn.getMonth() + 1 >= 10 ? DateIn                     .getMonth() + 1 : '0'                     + (DateIn.getMonth() + 1))                 + '-'                 + (DateIn.getDate() >= 10 ? DateIn.getDate()                     : '0' + (DateIn.getDate()));       };        /**        * 自定義map        */        function map () {         this.elements = new Array();          //得到map的大小           this.size = function() {             return this.elements.length;           }          //判斷是否為空           this.isEmpty = function() {             return (this.elements.length < 1);           }           //清空           this.clear = function() {             this.elements = new Array();           }           //放進map一個對象           this.put = function(_key, _value) {             this.elements.push( {               key : _key,               value : _value             });           }          //根據鍵去除一個對象           this.remove = function(_key) {             var bln = false;             try {               for (i = 0; i < this.elements.length; i++) {                 if (this.elements[i].key == _key && typeof this.elements[i].key == typeof _key) {                   this.elements.splice(i, 1);                   return true;                 }               }             } catch (e) {               bln = false;             }             return bln;           }          //根據鍵得到一個對象           this.get = function(_key) {             try {               for (i = 0; i < this.elements.length; i++) {                 if (this.elements[i].key == _key && typeof this.elements[i].key == typeof _key) {                   return this.elements[i].value;                 }               }             } catch (e) {               return null;             }           }          //返回指定索引的一個對象           this.element = function(_index) {             if (_index < 0 || _index >= this.elements.length) {               return null;             }             return this.elements[_index];           }          //是否包含鍵           this.containsKey = function(_key) {             var bln = false;             try {               for (i = 0; i < this.elements.length; i++) {                 if (this.elements[i].key == _key && typeof this.elements[i].key == typeof _key) {                   bln = true;                 }               }             } catch (e) {               bln = false;             }             return bln;           }          //是否包含值           this.containsValue = function(_value) {             var bln = false;             try {               for (i = 0; i < this.elements.length; i++) {                 if (this.elements[i].value == _value && typeof this.elements[i].value == typeof _value) {                   bln = true;                 }               }             } catch (e) {               bln = false;             }             return bln;           }          //得到所有的值           this.values = function() {             var arr = new Array();             for (i = 0; i < this.elements.length; i++) {               arr.push(this.elements[i].value);             }             return arr;           }          //得到所有的鍵           this.keys = function() {             var arr = new Array();             for (i = 0; i < this.elements.length; i++) {               arr.push(this.elements[i].key);             }             return arr;           }       };      /**       * 渲染panel視圖       */       var renderPanelView = function(){        var html = "";       html+="請選擇:<input id='"+customparams.chooseID+"' style='width:200px'/>";       html+="<form id='"+customparams.formID+"'>";       html+="<table>";       html+="<tr>";       html+="<th>姓名:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px ' readonly='true' type='text' id='xm' name='xm' /></td>";       html+="<th>編號:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true' type='text' id='bh' name='bh' /></td>";       html+="<th>單位:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true' type='text' id='gydwName' name='gydwName' /></td>";       html+="<th>入監時間:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true' type='text' id='rjrq' name='rjrq' /></td>";       html+="<td rowspan='7' style='text-align: center'><img src='' width='140' height='200' alt='' /></td>";       html+="</tr>";       html+="<tr>";       html+="<th>出生日期:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='csrq' name='csrq' /></td>";       html+="<th>身份證號:</th>"       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='sfzh' name='sfzh' /></td>";       html+="<th>原判刑期:</th>"       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='xq' name='xq' /></td>";       html+="<th>當前刑期:</th>"       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='dqxq' name='dqxq' /></td>";       html+="</tr>";       html+="<tr>";       html+="<th>刑期起日:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='dqxqqr' name='dqxqqr' /></td>";       html+="<th>刑期止日:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='dqxqzr' name='dqxqzr' /></td>";       html+="<th>處遇等級:</th>";       html+=" <td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='cydjname' name='cydjname' /></td>";       html+="<th>分押類型:</th>"       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='fylxName' name='fylxName' /></td>";       html+="</tr>";       html+="<tr>";       html+="<th>余刑:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='yx' name='yx' /></td>";       html+="<th>軍警經歷</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='jjjlName' name='jjjlName' /></td>";       html+="<th>特管類別:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='tglb' name='tglb' /></td>";       html+=" <th>累慣犯:</th>"       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='lgfEnum' name='lgfEnum' /></td>"       html+="</tr>";       html+="<tr>";       html+="<th>是否老犯:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='isSflf' name='isSflf' /></td>";       html+="<th>是否病犯:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='issfbf' name='issfbf' /></td>";       html+="<th>是否殘犯:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='issfcf' name='issfcf' /></td>";       html+="<th>是否危險犯:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='issfwxf' name='issfwxf' /></td>";       html+="</tr>";       html+="<tr>";       html+=" <th>職務犯:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='isZwf' name='isZwf' /></td>";       html+="<th>家庭住址:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='familyAddressDetail' name='familyAddressDetail' /></td>";       html+="<th>罪名:</th>";       html+="<td><input  style='border-left:0px;border-top:0px;border-right:0px;border-bottom:1px 'readonly='true'type='text' id='accusationId' name='accusationId' /></td>";       html+=" </tr>";       html+=" </table>";       html+="</form>";       $(customparams.currentTag).append(html);        renderComboGrid();       };       /*******************渲染dtaGrid部分*********************/       /**       * 渲染dataGrid表格       */       var renderGrid = function(){         var gridhtml ="";         gridhtml+="請選擇罪犯:<input id='"+customparams.chooseID+"' style='width:200px'/>";         gridhtml+="<div>";         gridhtml+="<table id='"+customparams.gridID+"'></table> ";         gridhtml+="<div id='"+customparams.pager+"'></div>";         gridhtml+="</div>";          $(customparams.currentTag).append(gridhtml);         renderComboGrid();         initDataGrid();       };       /**       * 加載dataGrid表格數據       */       var initDataGrid =function (){         $("#"+customparams.gridID).jqGrid({           datatype : 'local',           autowidth: true,           height:300,           colNames: ["姓名", "編號", "單位","操作"],           colModel: [             { name: "xm", index:"xm",align:"center",width:50,sortable: true},             { name: "bh", index:"bh", align:"center",width:50, sortable: true},             { name: "gydwName", index:"gydwName", align:"center",width:50,sortable: true},             { name: "customColumn",formatter:function(cellvalue, options, rowObject){               var obj = "{bh:" + "/"" + rowObject.bh + "/"" + ",rowId:" + "/"" + options.rowId + "/"" + "}";               var columnTemplate = "<span class='btn_orange innerDelBtn' name='"+ obj +"' >刪除</span>"               return columnTemplate;              }, align:"center",width:50,search:false,sortable: false}                ],           sortname: "bh",           sortorder: "desc",           rownumbers:true,//添加左側行號           viewrecords: true,           gridview: true,           autoencode: true,           caption: "罪犯信息列表",           gridComplete: function(){             binCompleteEvent();           }         });       };       /**       * 給表格綁定加載完的事件       */       var binCompleteEvent =function(){        //給操作欄綁定點擊事件         $(".innerDelBtn").click(function(e){           var obj = eval("(" + $(e.target).attr("name") + ")");           deleteRow(obj.bh, obj.rowId);         });          //選中行鼠標變為手型          var ids=$("#"+customparams.gridID).jqGrid('getDataIDs');           for(var i = 0; i < ids.length ; i ++){             var id = ids[i];             $("#"+id).attr("style","cursor:pointer");            }       }       /*******************渲染dtaGrid部分結束*********************/       /**       * 根據類型渲染視圖       */       var renderView = function(){        //根據isMultiselect判斷那種渲染視圖        options.isMultiselect==true?renderGrid():renderPanelView();       };       /***        * 初始化入口        */       renderView();      //使用三元表達式判斷返回的應是單個對象還是多個對象      return options.isMultiselect==false?customparams.resultObj:customparams.resultListObj;     }     });   })(jQuery); 

以上所述是小編給大家介紹的基于jQuery下拉選擇框插件支持單選多選功能代碼的相關內容,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 齐河县| 芷江| 河曲县| 巩留县| 丁青县| 沁阳市| 彰武县| 山西省| 富源县| 贵德县| 西安市| 武宣县| 临邑县| 灵武市| 荣昌县| 鄂托克旗| 伊吾县| 寿宁县| 崇礼县| 松江区| 成安县| 新干县| 凤凰县| 杨浦区| 阳泉市| 闵行区| 朔州市| 策勒县| 钟山县| 郴州市| 焦作市| 肥乡县| 琼海市| 绥芬河市| 沭阳县| 莎车县| 杨浦区| 来安县| 定西市| 永清县| 西昌市|