使用bootstrap typeahead插件實(shí)現(xiàn)輸入框自動(dòng)補(bǔ)全之問(wèn)題及解決辦法
根據(jù)網(wǎng)上查找到的 typeahead使用方法,到最后一步時(shí)就出錯(cuò),數(shù)據(jù)能從數(shù)據(jù)庫(kù)讀取出來(lái),但在輸入框顯示提示時(shí),全都顯為:underfined。捉摸了半天都發(fā)現(xiàn)不了問(wèn)題出在哪兒。后來(lái)在http://blog.64cm.com/post/2014/08/13/%E4%BD%BF%E7%94%A8bootstrap-typeahead%E6%8F%92%E4%BB%B6 上不經(jīng)意發(fā)現(xiàn)這么一句話:“在當(dāng)前版本的typeahead中,已經(jīng)不再支持在source屬性中直接調(diào)用ajax方法獲取數(shù)據(jù)源了。”提醒了我,因?yàn)槲腋鶕?jù)網(wǎng)上的方法,是直接在source中調(diào)用ajax方法。
再回頭現(xiàn)在的ace demo,雖然沒(méi)有調(diào)用ajax的示例,但也有注釋說(shuō)明如何用,只不過(guò)用的是英文(題外話:做技術(shù)的懂英語(yǔ)真的很重要。),經(jīng)過(guò)一翻調(diào)試,終于能正確顯示了。貼出代碼如下:
js代碼
<script type="text/javascript"> jQuery(function($) { //typeahead.js //example taken from plugin's page at: https://twitter.github.io/typeahead.js/examples/ var substringMatcher = function() {//substringMatcher()方法 return function findMatches(query, process) {//query 是配備的關(guān)鍵字,processj是返回的值 var matches, substringRegex; var params = {"token": getStorage("token"), "flag":0,"name":query}; var parameter_str=""; for(var key in params){ parameter_str+="&"+key+"="+params[key]; } var fullurl=getOption("gykj_host")+"institution/list?"+getOption("gykj_callbackparam")+"="+getOption("gykj_callbackfunc")+parameter_str; $("#submenu_info").html(fullurl); $.ajax({ url:fullurl, type:'get', dataType:"jsonp", jsonp:getOption("gykj_callbackparam"), jsonpCallback:getOption("gykj_callbackfunc"), async:false, error:function(){ alert("列表:"+getOption("connectionErrorMessage")); }, success:function(data){ //$("#submenu_info").html(fullurl); if(data.code==0){ var arr,substringRegex; arr=[]; substrRegex = new RegExp(query);//這必須有,要不還是顯示為underfined for(var item in data.data){ var str= data.data[item].name; if (substrRegex.test(str)) { // the typeahead jQuery plugin expects suggestions to a // JavaScript object, refer to typeahead docs for more info arr.push({ value:str}); } } process(arr); } } }) } } $('input.typeahead').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'states', displayKey: 'value', source: substringMatcher()//當(dāng)前版本source屬性中不能直接調(diào)用ajax方法獲取數(shù)據(jù)源,通過(guò)substringMatcher()方法 }); }); </script>
html
<!-- inline scripts related to this page --> <script src="../assets/js/ace-elements.js"></script> <script src="../assets/js/typeahead.jquery.js"></script> <input type="text" id="name" placeholder="機(jī)構(gòu)名稱" class="col-xs-10 col-sm-5 typeahead scrollable" value="" autocomplete="off" />
以上所述是小編給大家介紹的使用bootstrap typeahead插件實(shí)現(xiàn)輸入框自動(dòng)補(bǔ)全之問(wèn)題及解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Bootstrap CSS組件之輸入框組
- Bootstrap彈出框modal上層的輸入框不能獲得焦點(diǎn)問(wèn)題的解決方法
- Bootstrap基本組件學(xué)習(xí)筆記之input輸入框組(9)
- bootstrap下拉列表與輸入框組結(jié)合的樣式調(diào)整
- bootstrap輸入框組代碼分享
- Bootstrap3 input輸入框插入glyphicon圖標(biāo)的方法
- bootstrap布局中input輸入框右側(cè)圖標(biāo)點(diǎn)擊功能
- 基于Bootstrap重置輸入框內(nèi)容按鈕插件
- 基于Bootstrap使用jQuery實(shí)現(xiàn)輸入框組input-group的添加與刪除
- bootstrap輸入框組件使用方法詳解
相關(guān)文章
JS日期格式化之javascript Date format
這篇文章主要介紹了JS日期格式化之javascript Date format的相關(guān)資料,需要的朋友可以參考下2015-10-10window.parent調(diào)用父框架時(shí) ie跟火狐不兼容問(wèn)題
window.parent調(diào)用父框架時(shí),ie跟火狐不兼容問(wèn)題!2009-07-07JavaScript調(diào)用后臺(tái)的三種方法實(shí)例
這篇文章介紹了JavaScript調(diào)用后臺(tái)的三種方法實(shí)例,有需要的朋友可以參考一下2013-10-10詳解Webpack實(shí)戰(zhàn)之構(gòu)建 Electron 應(yīng)用
本篇文章主要介紹了Webpack實(shí)戰(zhàn)之構(gòu)建 Electron 應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12關(guān)于uniapp微信小程序左上角返回按鈕的監(jiān)聽詳解
uniapp是一個(gè)支持多端的技術(shù),因此它是兼容性比較強(qiáng)的,而且速度也很快,下面這篇文章主要給大家介紹了關(guān)于uniapp微信小程序左上角返回按鈕監(jiān)聽的相關(guān)資料,需要的朋友可以參考下2022-04-04