1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/JerryZst-select-input

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
index.html 7.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
JerryZst Отправлено 07.08.2021 15:06 c0ae4ad
<!DOCTYPE html>
<html>
<head>
<title>selectInput</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<link rel="stylesheet" type="text/css" href="./src/layui/css/layui.css"/>
<style>
.scroll-body {
overflow-x: hidden;
overflow-y: auto;
}
.xm-option {
display: flex;
align-items: center;
position: relative;
padding: 0 10px;
line-height: 36px;
cursor: pointer;
}
.xm-option-content {
display: flex;
position: relative;
padding-left: 15px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: #666;
width: calc(100% - 20px);
}
</style>
</head>
<body>
<div class="layui-form layui-container" style="padding: 20px">
<div class="layui-form-item">
<div class="layui-input-block" id="test1"></div>
</div>
<div class="layui-form-item" style="margin-top: 100px">
<div class="layui-input-block">
<button type="button" class="layui-btn" id="addSelect">动态添加选项</button>
<button type="button" class="layui-btn" id="getValue">获取Value值</button>
<button type="button" class="layui-btn" id="emptyValue">清空Value值</button>
<button type="button" class="layui-btn" id="setValue">设置属性值</button>
<button type="button" class="layui-btn" lay-submit lay-filter="*">提交</button>
</div>
</div>
</div>
</body>
<script src="./src/layui/layui.all.js"></script>
<script>
layui.config({
base: './src/modules/'
}).extend({
selectInput: 'selectInput/selectInput'
}).use(['form', 'selectInput'], function () {
var $ = layui.$,
form = layui.form,
selectInput = layui.selectInput;
selectInput.render('#test1', {
// 容器id,必传参数
name: 'test', // 渲染的input的name值
hasSelectIcon: true,
layFilter: 'test', //同layui form参数lay-filter
layVerify: 'required', //同layui form参数lay-verify
layVerType: '', // 同layui form参数lay-verType
layReqText: '请填写文本', //同layui form参数lay-ReqText
initValue: '222', // 渲染初始化默认值
placeholder: '请输入名称', // 渲染的inputplaceholder值
// 联想select的初始化本地值,数组格式,里面的对象属性必须为value,name,value是实际选中值,name是展示值,两者可以一样
invisibleMode: true,
ignoreCase: true,
data: [
{name: 'APPLE', value: 222},
{name: 'XIAOMI', value: 222},
{name: 'HUAWEI', value: 222},
],
hasCut: true, // 是否允许剪贴
//url: "http://toys.shop.com/site/test", // 异步加载的url,异步加载联想词的数组值,设置url,data参数赋的值将会无效,url和data参数两者不要同时设置
remoteSearch: false, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
parseData: function (res) { // 此参数仅在异步加载data数据下或者远程搜索模式下有效,解析回调,如果你的异步返回的data不是上述的data格式,请在此回调格式成对应的数据格式,回调参数是异步加载的数据
let data = [];
res.map(item => {
data.push({name: item.title, value: item.val})
});
console.log(data)
return data;
},
error: function (error) { // 异步加载出错的回调 回调参数是错误msg
},
done: function (data) { // 异步加载成功后的回调 回调参数加载返回数据
console.log(data)
},
remoteMethod: function (value, cb) { // 远程搜索的回调函数
// value 是input实施输入的value值
// cb是回调处理函数,请在执行ajax搜索请求成功之后执行此回调函数
//案例
//这里如果val为空, 则不触发搜索
if (!value) {
return cb([]);
}
//这里的$.ajax去请求后台拿回数据
$.ajax({
method: 'get',
url: 'http://toys.shop.api.com/user/test', // 此处是你服务端的接口
data: {
keyword: value,
},
success: function (data) {
// 此处最好直接返回取你返回的 data属性,如:data.data,这样不限制你后端返回的数据对象格式,如果整体传参,必须满足:{"code":0,"msg":"success","data":[]}
return cb(data)
}
})
}
});
var ins = selectInput.getInstance("#test1");
// 监听input 实时输入事件
ins.on('itemInput(test1)', function (obj) {
console.log($(obj).val());
});
// 监听select 选择事件
ins.on('itemSelect(test1)', function (obj) {
console.log(obj);
});
// 获取选中的value值
//var selectValue = ins.getValue();
// 清空输入框的value值
//ins.emptyValue();
$("#addSelect").click(function () {
ins.addSelect([{
value: 'aa bb',
name: 1111
},
{
value: 2333,
name: 2222
},
{
value: 2333,
name: 2333
},
{
value: 2333,
name: 2333
},
{
value: 6666,
name: 9999
},
{
value: 8888,
name: 101010
},
])
});
$("#emptyValue").click(function () {
ins.emptyValue();
})
$("#getValue").click(function () {
var value = ins.getValue();
if (value) {
if (typeof (value) === 'object') {
layer.msg(JSON.stringify(value));
} else {
layer.msg(value);
}
} else {
layer.msg('请先选择');
}
})
// 设置属性值
$("#setValue").click(function () {
layer.prompt({title: '输入属性值设置', formType: 0}, function (pass, index) {
layer.close(index);
ins.setValue(pass, true);
});
})
/**
* 监听提交
*/
form.on('submit(*)', function (data) {
layer.msg(JSON.stringify(data.field));
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
// 如果使用本地数据加载,不要使用设置远程 url参数 也不要将remoteSearch参数设置为 true,完整的本地赋值数据案例
// var ins2 = selectInput.render({
// elem: '#test1',
// data: [
// {value: 1111, name: 1111},
// {value: 2333, name: 2222},
// {value: 2333, name: 2333},
// {value: 2333, name: 2333},
// ],
// placeholder: '请输入名称',
// name: 'list_common',
// remoteSearch: false
// });
});
</script>
</html>

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/JerryZst-select-input.git
git@api.gitlife.ru:oschina-mirror/JerryZst-select-input.git
oschina-mirror
JerryZst-select-input
JerryZst-select-input
master