搜了半天發現在某處下載jquery.editable-select需要積分,於是整理出來方便 其他人。
先上下載鏈接: http://pan.baidu.com/s/1kUXvwlL password : 5iqn
然后直接請看代碼:
引用:
<script type="text/javascript" src="${ contextPath }/res/sys/scripts/jquery.editable-select.min.js"></script>
<link href="${ contextPath }/res/sys/scripts/css/jquery.editable-select.min.css" rel="stylesheet">
HTML部分:
</tr> <tr> <th valign="middle"> <h4> 用量 </h4> </th> <td valign="middle" style="width:28%"> <input type="text" class="form_input form-control" id='num' name='num' value='${map.get("input_value")}' placeholder=" "> </td> <td valign="middle" style="width:27%"> <select id="numUnit" name="numUnit" class="form-control"> </select> </td> </tr>
JS部分:
ajaxDirect(contextPath + "/admin/getDataDictAll/024", {}, function(data) { var htm = ""; for (var int = 0; int < data.length; int++) { htm += "<option value='" + data[int].name + "'>" + data[int].name + "</option>"; } $('#numUnit').html(htm); $('#numUnit').editableSelect({ effects: 'slide', //可選參數default、fade filter: false // 不過濾,否則選中后其它選項消失 }); // $("#numUnit").attr("readonly","true"); // 設置不可編輯 setTimeout(function() { $('#numUnit').val(data[0].name); // 設置默認值,不延時則不生效。 }, 300); });
ajaxDirect 是變了個花樣的ajax,可無視
/** * 返回JSON形式的數據 * @param url 地址 * @param data 參數 * @param func 返回函數 * @param async 是否異步 */ function ajaxDirect(url, data, func, async) { if (!async) { async = false; } $.ajax({ url: url, type: "post", dataType: "json", async: async, data: data, success: func }); }
效果如圖:
其它選項設置:
- filter:過濾,即當輸入內容時下拉選項會匹配輸入的字符,支持中文,true/false,默認true。
- effects:動畫效果,當觸發彈出下拉選擇框時的下拉框展示過渡效果,有default,slide,fade三個值,默認是default。
- duration:下拉選項框展示的過渡動畫速度,有fast,slow,以及數字(毫秒),默認是fast。
-
事件
- onCreate:當輸入時觸發。
- onShow:當下拉時觸發。
- onHide:當下拉框隱藏時觸發。
- onSelect:當下拉框中的選項被選中時觸發。