在mini.ComboBox中展开的下拉面板中加一个筛选输入框 jquery
时间: 2023-11-28 13:50:35 浏览: 94
输入框下拉筛选
可以通过在mini.ComboBox的下拉面板中添加一个输入框作为筛选输入框来实现。具体步骤如下:
1. 在ComboBox的下拉面板中添加一个输入框,可以使用jQuery的append方法将输入框添加到下拉面板中。
```javascript
var combo = mini.get("combo1");
combo.on("showpopup", function(e) {
var popup = combo.getPopup();
var filterInput = $("<input>").attr("type", "text").addClass("filter-input");
popup.append(filterInput);
});
```
2. 监听输入框的输入事件,在输入框中输入内容时,筛选下拉列表中的选项。
```javascript
combo.on("showpopup", function(e) {
var popup = combo.getPopup();
var filterInput = $("<input>").attr("type", "text").addClass("filter-input");
popup.append(filterInput);
filterInput.on("input", function() {
var value = $(this).val();
combo.filter(value);
});
});
```
3. 编写筛选方法,根据输入框中的内容筛选下拉列表中的选项。
```javascript
combo.on("showpopup", function(e) {
var popup = combo.getPopup();
var filterInput = $("<input>").attr("type", "text").addClass("filter-input");
popup.append(filterInput);
filterInput.on("input", function() {
var value = $(this).val();
combo.filter(value);
});
});
combo.filter = function(value) {
var data = combo.getData();
var filteredData = [];
for (var i = 0, l = data.length; i < l; i++) {
var text = combo.getTextByValue(data[i][combo.valueField]);
if (text.indexOf(value) != -1) {
filteredData.push(data[i]);
}
}
combo.setData(filteredData);
};
```
完整代码如下:
```javascript
var combo = mini.get("combo1");
combo.on("showpopup", function(e) {
var popup = combo.getPopup();
var filterInput = $("<input>").attr("type", "text").addClass("filter-input");
popup.append(filterInput);
filterInput.on("input", function() {
var value = $(this).val();
combo.filter(value);
});
});
combo.filter = function(value) {
var data = combo.getData();
var filteredData = [];
for (var i = 0, l = data.length; i < l; i++) {
var text = combo.getTextByValue(data[i][combo.valueField]);
if (text.indexOf(value) != -1) {
filteredData.push(data[i]);
}
}
combo.setData(filteredData);
};
```
阅读全文