關(guān)于layui的下拉搜索框異步加載數(shù)據(jù)的解決方法
思路分析:當(dāng)我使用layui默認(rèn)的下拉搜索框的時(shí)候,layui會默認(rèn)渲染出一個HTML結(jié)構(gòu),所以我把渲染出來的這個結(jié)果直接給復(fù)制出來,這樣css的樣式就不用從頭到尾寫一遍了,
前端代碼(我用的是jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="statics/css/font.css" rel="external nofollow" >
<link rel="stylesheet" href="statics/css/xadmin.css" rel="external nofollow" >
</head>
<body>
<form class="layui-form" action="">
<div class="layui-inline">
<label class="layui-form-label">搜索選擇框</label>
<div class="layui-input-inline">
<div class="layui-form-select layui-form-selected searchDiv">
<div class="layui-select-title"><input type="text" placeholder="直接選擇或搜索選擇" value="" class="layui-input search_input" id="search_input"></div>
<dl class="layui-anim layui-anim-upbit" style="display: block;">
<!-- <dd lay-value="" class="layui-select-tips layui-this">直接選擇或搜索選擇</dd> -->
<!-- <dd lay-value="1" class="layui-this">layer</dd>
<dd lay-value="2" class="">form</dd>
<dd lay-value="3" class="">layim</dd> -->
<!-- <dd lay-value="4" class="">element</dd>
<dd lay-value="5" class="">laytpl</dd>
<dd lay-value="6" class="">upload</dd>
<dd lay-value="7" class="">laydate</dd>
<dd lay-value="8" class="">laypage</dd>
<dd lay-value="9" class="">flow</dd>
<dd lay-value="10" class="">util</dd>
<dd lay-value="11" class="">code</dd>
<dd lay-value="12" class="">tree</dd>
<dd lay-value="13" class="">layedit</dd>
<dd lay-value="14" class="">nav</dd>
<dd lay-value="15" class="">tab</dd>
<dd lay-value="16" class="">table</dd>
<dd lay-value="17" class="">select</dd>
<dd lay-value="18" class="">checkbox</dd>
<dd lay-value="19" class="">switch</dd>
<dd lay-value="20" class="">radio</dd> -->
</dl>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script src="statics/lib/layui/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'jquery','layer'], function(){
var form = layui.form
var $=layui.$;
var layer=layui.layer;
var oldValue=null;
$(".search_input").keyup(function(event){
//alert(event.keyCode)
//layer.msg(event.keyCode);
if(event.keyCode==40){ //方向健↓
//如果是最后一個則不用做任何事情
if($(this).parent().next("dl").children(":last").hasClass("layui-this")){
return;
}
$(this).parent().next("dl").find("dd.layui-this").removeClass("layui-this").next("dd").addClass("layui-this");
$dl=$(this).parent().next("dl");
$dl.scrollTop($dl.scrollTop()+$dl.find("dd.layui-this").height());
return;
}
if(event.keyCode==38){ //方向健↑
//如果是第一個則不用做任何事情
if($(this).parent().next("dl").children(":first").hasClass("layui-this")){
return;
}
$(this).parent().next("dl").find("dd.layui-this").removeClass("layui-this").prev("dd").addClass("layui-this");
$dl=$(this).parent().next("dl");
$dl.scrollTop($dl.scrollTop()-$dl.find("dd.layui-this").height());
return;
}
if(event.keyCode==13){ //按回車鍵給文本框賦值
$(this).val($(this).parent().next("dl").find("dd.layui-this").html());
oldValue=$(this).val().trim();
return;
}
if(oldValue!=$(this).val().trim()){ //如果輸入框的值沒有改變就沒必要發(fā)送ajax請求
//根據(jù)用戶輸入的內(nèi)容發(fā)送ajax請求查詢以此內(nèi)容開頭的商品簡碼,從而查出符合要求的商品名字
$.get("product/getProductsByCode",{"productCode":$(this).val()},function(data){
if(!!data){
//清除掉以前的值
$(".searchDiv dl.layui-anim").html("");
for(var i=0;i<data.length;i++){
$(".searchDiv").find("dl.layui-anim").append("<dd lay-value=\""+data[i].productId +"\" οnclick=\"changeSearchText(this)\">"+data[i].productName+"</dd>");
$(".searchDiv").find("dl.layui-anim").children("dd:first").addClass("layui-this");
}
//重新渲染select
//form.render('select');
}
},'json')
}
})
form.on('submit(formDemo)',function(){
return false; //這樣的做的目的是因?yàn)槔锩嬗形谋据斎肟?,?dāng)我們按回車鍵的時(shí)候會默認(rèn)提交表單,所以要進(jìn)行此操作
})
});
function changeSearchText(obj){
document.getElementById("search_input").value=obj.innerHTML;
}
</script>
</body>
</html>
后臺代碼我就不貼了,我是認(rèn)為后臺沒有必要貼了
以上這篇關(guān)于layui的下拉搜索框異步加載數(shù)據(jù)的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript使用atan2來繪制箭頭和曲線的實(shí)例
下面小編就為大家?guī)硪黄狫avaScript使用atan2來繪制箭頭和曲線的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
JavaScript+html實(shí)現(xiàn)前端頁面滑動驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了JavaScript+html實(shí)現(xiàn)前端頁面滑動驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
微信小程序picker組件下拉框選擇input輸入框的實(shí)例
這篇文章主要介紹了微信小程序picker組件下拉框選擇input輸入框的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
JavaScript 讀URL參數(shù)增強(qiáng)改進(jìn)版版
網(wǎng)上有不少JavaScript 讀 URL 參數(shù)的函數(shù),但沒考慮到 URL 中帶 # 符的情況,我的可以處理這種情況,并使用了點(diǎn)對象寫法,優(yōu)化了些性能。2008-10-10
使用JavaScript實(shí)現(xiàn)圖片的自動輪播
在網(wǎng)站開發(fā)中,經(jīng)常會遇到需要展示多張圖片并自動切換的需求,這就需要使用JavaScript來實(shí)現(xiàn)圖片的自動輪播功能,本文將通過一個簡單的例子,演示如何用JavaScript實(shí)現(xiàn)圖片的自動輪播,需要的朋友可以參考下2013-03-03
js實(shí)現(xiàn)密碼強(qiáng)度檢測【附示例】
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)密碼強(qiáng)度檢測【附示例】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-03-03

