搜了半天發現在某處下載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:當下拉框中的選項被選中時觸發。
