Jquery自動補全插件的使用


1、引入cssjs 

 

<script src="js/jquery-ui.min.js"></script>

<link href="css/jquery-ui.min.css" rel="stylesheet">

下載地址

https://github.com/xiaorenwu-dashijie/autocomplete.git

2、寫input輸入框,主要是觸發onkeyup事件

<input type="text" class="form-control" id="instiName" name="instiName" onkeyup="findInstiNamesByValue()" placeholder="請輸入機構名稱" >

 

3、寫方法

function findInstiNamesByValue(){

var instiName = $("#instiName").val();  //獲取輸入框內容

$( "#instiName" ).autocomplete({

    source: '${pageContext.request.contextPath}/findInstiNamesByValue?instiName='+instiName,  //請求的url

    minLength: 1,

  });

}

 

注意:jqueryautocomplete方法需要的響應數據是json類型的數組

4、后台代碼

aController

/**

 * 添加數據修復申請時,通過模糊查詢自動補全機構名稱

 *

 * @param instiName

 *            輸入框中的內容

 * @return

 */

@RequestMapping("/findInstiNamesByValue")

public @ResponseBody String[] findInstiNamesByValue(String instiName) {

List<String> instiNames = instiDetailService.findInstiNamesByValue("%" + instiName.trim() + "%");

if (CollectionUtils.isEmpty(instiNames)) {

return null;

}

int size = instiNames.size();

String[] arr = (String[]) instiNames.toArray(new String[size]);

return arr;

}

 

bService

/**

 * 根據輸入框中的漢字查詢機構名從而實現自動補全功能

 *

 * @param instiName

 * @return

 */

List<String> findInstiNamesByValue(String instiName);

 

 

cService.impl

@Override

public List<String> findInstiNamesByValue(String instiName) {

List<String> instiNames = instiDetailMapper.findInstiNamesByValue(instiName);

return instiNames;

}

 

dMapper

/**

 * 根據輸入框中的漢字查詢機構名從而實現自動補全功能

 *

 * @param instiName

 * @return

 */

 

@Select(" select insti_name from insti_detail where insti_name LIKE #{instiName}")

List<String> findInstiNamesByValue(String instiName);

 

PS不用注解的話,可以用Mapper.xml

<select id="findInstiNamesByValue" resultType="java.lang.String" parameterType="java.lang.String" >

    select insti_name

    from insti_detail

    where insti_name LIKE #{instiName}

  </select>

 

5、(模態框)自動補全問題解決

不使用模態窗的時候,autocomplete可以很好的工作,使用模態窗時彈出的選擇菜單會被模態窗遮擋。

在文件添加了下面一段CSS代碼,終於成功解決。

 

<style type="text/css">

    .ui-autocomplete{

        display:block;

        z-index:99999;

    }

</style>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM