插件的ui挺好的
回答下几个问题(ps:我做后端的,对原生js不是很精通,写的不好谅解):
1.怎么初始化默认值:
看了下代码,貌似没这个功能,所以需要改插件
把verseect文件的第33行左右的defa_text赋值和defa_value赋值语句改成:
var defa_value = it.value;
var thoptions = it.querySelectorAll("option[value]");
var defa_text = it.querySelector("option").innerText;
[].forEach.call(thoptions, function(option) {
if (option.getAttribute("value") == defa_value) {
defa_text = option.innerText;
}
});2.解决搜索框删除所有搜索内容后下拉框消失的问题:
把
items.classList.toggle("verSelector-focus-show");
if (!items.classList.contains("verSelector-focus-show")) return false;
替换成
if (!items.classList.contains("verSelector-focus-show")) {
items.classList.add("verSelector-focus-show");
}3.如何获取选中的值
$('.verSelector-input-list>input[name=这里写原来select的name值]').val();
var option = function() {
document.onclick = function(e) {
var target = e.target;
//判断是否是下拉选框点击事件
if (target.classList.contains("verSelector-one")) {
var op = e.target.parentElement.parentElement.previousElementSibling.childNodes; //-->真正获取option的列表
if (target.classList.contains("verSelector-text") || target.classList.contains("verSelector-caret")) {
target = target.parentElement;
}
var parent = target.parentElement;
_s(parent);
show_options(target, op); //-->多传一个参数给显示的方法
} else if (target.classList.contains("verSelector-two")) {
return true;
} else {
_s();
}
e.stopPropagation();
}
};var show_options = function (tar, op) {}在这个方法里面循环op就可以了 不用他的option
[].forEach.call(op, function (i) {}
var keyup_search = function () {}里同样修改 增加 op并传参
op = ops.previousElementSibling.childNodes;
show_options(this.parentElement.parentElement,op);