真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JQuery搜索框自動(dòng)補(bǔ)全(模糊匹配)功能實(shí)現(xiàn)示例

本地實(shí)現(xiàn)了一個(gè)搜索框自動(dòng)補(bǔ)全的小功能,在JQuery UI的autocomplete插件的基礎(chǔ)上,加入了自己的業(yè)務(wù)代碼,貼出來(lái)回顧一下,同時(shí)可以給大家一個(gè)參考

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來(lái)巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),創(chuàng)新互聯(lián)建站面向各種領(lǐng)域:效果圖設(shè)計(jì)成都網(wǎng)站設(shè)計(jì)、成都營(yíng)銷網(wǎng)站建設(shè)解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。


首先貼出的是JQuery Ui 的自動(dòng)補(bǔ)全插件部分的代碼,后面的功能都是在其基礎(chǔ)上追加的,直接拷貝到你的本地就可以直觀的看到運(yùn)行效果,也可以到官網(wǎng)上面體驗(yàn)和查看,為了方便,我這里是直接引入的JS鏈接點(diǎn)擊下載JQuery UI的源碼




 
 
 jQuery UI Autocomplete - Default functionality
 
 
 
 
 


 

運(yùn)行截圖

JQuery搜索框自動(dòng)補(bǔ)全(模糊匹配)功能實(shí)現(xiàn)示例

jquery-ui的自動(dòng)補(bǔ)全功能截圖

下面說(shuō)下我追加的部分功能及實(shí)現(xiàn)思路,有可以改進(jìn)的地方還請(qǐng)指教:

1、首先,數(shù)據(jù)源要根據(jù)用戶輸入的內(nèi)容實(shí)時(shí)更新.

輸入框的值隨著用戶的輸入會(huì)一直變動(dòng).所以,輸入框下方的推薦補(bǔ)全的內(nèi)容要輸入的值進(jìn)行變動(dòng),這里使用onkeyup屬性來(lái)監(jiān)聽(tīng)鍵盤(pán)動(dòng)作,并傳遞此時(shí)input的value值到j(luò)s函數(shù)中.

  //html
  

  //js代碼
  function catch_keyword(word) {//這里接受并log出value
    console.log(word);
  }

2、第2步,考慮到數(shù)據(jù)庫(kù)中需要模糊檢索的字段都是中文的菜品名稱.所以,當(dāng)用戶輸入字母的時(shí)候,進(jìn)行了一下過(guò)濾,當(dāng)輸入的內(nèi)容中存在字母時(shí),不提交給后臺(tái)處理

  //字符串判斷函數(shù)
  //判斷一個(gè)字符串是否混有字母,全中文返回true
  function isChn(str) {
    var reg = /^[\u4E00-\u9FA5]+$/;
    if (!reg.test(str)) {
      return false;
    } else {
      return true;
    }
  }

3、發(fā)現(xiàn)當(dāng)字符串中含有空格的時(shí)候,上面的字符串判斷函數(shù),返回的內(nèi)容不符合預(yù)期,然后加入了一個(gè)去除字符串中所有空格的功能

  //去掉字符串中任意位置的空格,返回去除空格后的字符串
  function Trim(str, is_global) {
    var result;
    result = str.replace(/(^\s+)|(\s+$)/g, "");
    if (is_global.toLowerCase() == "g") {
      result = result.replace(/\s/g, "");
    }
    return result;
  }

4、處理結(jié)束用戶的輸入后,就是提交到后臺(tái),然后返回?cái)?shù)據(jù)源了,也就是availableTags;這里我把a(bǔ)vailableTags聲明為全局變量.并且用同步的Ajax方式取回?cái)?shù)據(jù),然后賦值給availableTags,然后在監(jiān)聽(tīng)鍵盤(pán)的函數(shù)中,使用返回的數(shù)據(jù)調(diào)用自動(dòng)補(bǔ)全功能.

  //請(qǐng)求后端獲取數(shù)據(jù)源
  function get_source(word = null) {
    var url = "<?php echo base_url('admin/Demo/source');?>?keyword=" + word;
    $.get({
      type: 'GET',
      url: url,
      async: false,//改為同步
      dataType: 'json',
      success: function (response) {
        console.log('1');
        availableTags = response;
      }
    });
  }

這里更新下最開(kāi)始的接收監(jiān)聽(tīng)鍵盤(pán)后的value值的函數(shù)

  //捕捉鍵入的關(guān)鍵字
  function catch_keyword(word = null) {
    if (isChn(Trim(word, 'g'))) {//去掉空格后檢查字符串,如果符合,繼續(xù)請(qǐng)求后臺(tái)
      get_source(word);
      $("#tags").autocomplete({
        source: availableTags //數(shù)據(jù)源
      });
    }
  }

到這里,這個(gè)功能已經(jīng)基本結(jié)束了,在測(cè)試過(guò)程中發(fā)現(xiàn)了一個(gè)小問(wèn)題,每次第一次獲取用戶輸入的時(shí)候,自動(dòng)補(bǔ)全功能沒(méi)有觸發(fā),在用戶繼續(xù)輸入后,才觸發(fā)成功,經(jīng)過(guò)調(diào)試,我在頁(yè)面加載完成后,初始化一下自動(dòng)補(bǔ)全插件,解決了這個(gè)問(wèn)題

6. 附:完整代碼

不知道如何在markdown中添加下載鏈接,只好把完整代碼放上來(lái)啦!




  
  
  
  
  
  
  

  
  
  


  
  



以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文名稱:JQuery搜索框自動(dòng)補(bǔ)全(模糊匹配)功能實(shí)現(xiàn)示例
網(wǎng)站網(wǎng)址:http://weahome.cn/article/goghdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部