Rumah >hujung hadapan web >tutorial js >Melaksanakan fungsi pemadanan kata kunci carian automatik berdasarkan jQuery_jquery

Melaksanakan fungsi pemadanan kata kunci carian automatik berdasarkan jQuery_jquery

WBOY
WBOYasal
2016-05-16 15:34:521660semak imbas

Hari ini kita akan melihat contoh ringkas padanan kata kunci automatik berdasarkan jquery saya harap artikel itu akan membantu anda.
Contoh 1
Dalam projek itu, pengguna kadangkala dikehendaki memilih bandar, tetapi terdapat terlalu banyak bandar dan menyusahkan pengguna untuk memilih Oleh itu, kotak input disediakan di mana pengguna boleh memasukkan aksara Cina atau singkatan pinyin bandar. Gambar rajah keputusan adalah seperti berikut:


Hasil selepas memasukkan pinyin adalah seperti berikut:


Kod pelaksanaan adalah seperti berikut:

<html><head><title>实时查询城市通过姓名或拼音简写</title></head><meta charset = "utf-8" ><script type="text/javascript" src="jquery.min.js"></script><body><input id="searchCityName" style="width: 100%;" type="text" placeholder="中文 / 拼音首字母" /> 
 <ul> 
  <li pinyin="bj" cityname="北京"><a href="/cityBranch/12.html">北京 </a></li> 
  <li pinyin="dl" cityname="大连"><a href="/cityBranch/14.html">大连 </a></li> 
  <li pinyin="sh" cityname="上海"><a href="/cityBranch/13.html">上海 </a></li> 
  <li pinyin="jn" cityname="济南"><a href="/cityBranch/15.html">济南 </a></li> 
  <li pinyin="gz" cityname="广州"><a href="/cityBranch/17.html">广州 </a></li> 
  <li pinyin="jh" cityname="金华"><a href="/cityBranch/18.html">金华 </a></li> 
  <li pinyin="wh" cityname="武汉"><a href="/cityBranch/19.html">武汉 </a></li> 
  <li pinyin="nj" cityname="南京"><a href="/cityBranch/20.html">南京 </a></li> 
  <li pinyin="sz" cityname="深圳"><a href="/cityBranch/22.html">深圳 </a></li> 
  <li pinyin="tj" cityname="天津"><a href="/cityBranch/21.html">天津 </a></li> 
  <li pinyin="cd" cityname="成都"><a href="/cityBranch/24.html">成都 </a></li> 
  <li pinyin="ly" cityname="临沂"><a href="/cityBranch/25.html">临沂 </a></li> 
  <li pinyin="cc" cityname="长春"><a href="/cityBranch/26.html">长春 </a></li> 
  <li pinyin="hz" cityname="杭州"><a href="/cityBranch/27.html">杭州 </a></li> 
  <li pinyin="nb" cityname="宁波"><a href="/cityBranch/28.html">宁波 </a></li> 
  <li pinyin="qd" cityname="青岛"><a href="/cityBranch/29.html">青岛 </a></li> 
  <li pinyin="sy" cityname="沈阳"><a href="/cityBranch/33.html">沈阳 </a></li> 
 </ul>
 <script>
  function searchCity() {
    var searchCityName = $("#searchCityName").val();    if (searchCityName == "") {
      $("ul li").show();
    } else {
      $("ul li").each(          function() {
            var pinyin = $(this).attr("pinyin");            var cityName = $(this).attr("cityName");            if (pinyin.indexOf(searchCityName) != -1
                || cityName.indexOf(searchCityName) != -1) {
              $(this).show();
            } else {
              $(this).hide();
            }
          });
    }
  }
  $('#searchCityName').bind('input propertychange', function() {
    searchCity();
  }); </script></body></html>

Nota:

1. Apabila saya ingin menanyakan nilai senarai dalam kotak input dalam masa nyata, penyelesaian pertama yang terlintas di fikiran ialah menggunakan ajax, tetapi selepas memikirkannya, saya mendapati bahawa nilai senarai itu pada dasarnya tetap . Mengapa tidak memuatkannya sekali gus, jadi Kod latar belakang telah ditukar untuk memuatkan semua butiran bandar.
2. Apabila nilai dalam kotak input berubah, satu peristiwa perlu dicetuskan idea pertama saya ialah menggunakan onchange, tetapi sebenarnya onchange bermakna nilai kotak input berubah dan kotak input hilang fokus, jadi saya akhirnya menggunakan. keyup. Tiada masalah dengan keyup apabila diuji pada komputer, tetapi pada WeChat, ia tidak berkesan. Jadi keyup telah digantikan dengan bind akhir('input propertychange', function() {} .
3. Apabila menilai sama ada aksara bandar memasukkan aksara dalam kotak input, saya menggunakan fungsi mengandungi Tiada masalah semasa menguji di bawah Firefox, tetapi ia tidak berkuat kuasa pada pelanggan Chrome dan WeChat. Akhirnya, kandungan digantikan dengan indexOf.

Contoh 2, gunakan pemalam jquery.autocomplete untuk melaksanakan.
1. Gunakan tetapan
Halaman utama, anda perlu membenamkan kod js pemalam ke dalam projek anda sendiri.

<script src="jquery.js" type="text/javascript"><!--mce:0--></script><script src="jquery.autocomplete.js" type="text/javascript"><!--mce:1--></script>

2. Cara menggunakan
Tambahkan fungsi AutoComplete pada borang input di mana gesaan padanan automatik akan dilaksanakan.

<input id="query" name="q" />
初始化 AutoComplete 对象,确保正确加载 DOM 对象,否则IE下的用户可能会出现错误。
$('#query').autocomplete({ serviceUrl: 'service/autocomplete.ashx', // Page for processing autocomplete requests minChars: 2, // Minimum request length for triggering autocomplete delimiter: /(,|;)\s*/, // Delimiter for separating requests (a character or regex) maxHeight: 400, // Maximum height of the suggestion list, in pixels width: 300, // List width zIndex: 9999, // List's z-index deferRequestBy: 0, // Request delay (milliseconds), if you prefer not to send lots of requests while the user is typing. I usually set the delay at 300 ms. params: { country: 'Yes'}, // Additional parameters onSelect: function(data, value){ }, // Callback function, triggered if one of the suggested options is selected, lookup: ['January', 'February', 'March'] // List of suggestions for local autocomplete });

Lakukan pemadanan gesaan kata kunci berdasarkan maklumat input dalam borang teks.

{ query:'Li', // Original request suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'], // List of suggestions data:['LR','LY','LI','LT'] // Optional parameter: list of keys for suggestion options; used in callback functions. } 
jQuery AutoComplete 插件支持 on/off功能,从而控制效果的开关。
var ac = $('#query').autocomplete({ /*parameters*/ }); ac.disable(); ac.enable(); ac.setOptons({ zIndex: 1001 });

3. Tetapkan gaya persembahan

Akhir sekali, gunakan div dan css untuk mencantikkan kesan prestasi.

<div class="autocomplete-w1"><div id="Autocomplete_1240430421731" class="autocomplete" style="width: 299px;"><div><strong>Li</strong>beria</div><div><strong>Li</strong>byan Arab Jamahiriya</div><div><strong>Li</strong>echtenstein</div><div class="selected"><strong>Li</strong>thuania</div></div></div> .autocomplete-w1 { background:url(img/shadow.png) no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; }.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }.autocomplete .selected { background:#F0F0F0; }.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; }.autocomplete strong { font-weight:normal; color:#3399FF; } jQuery AutoComplete

Dua contoh yang dikongsi di atas adalah mengenai fungsi pemadanan kata kunci carian automatik jQuery, saya harap ia akan membantu pembelajaran semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn