使用bootstrap typeahead插件實(shí)現(xiàn)輸入框自動(dòng)補(bǔ)全之問(wèn)題及解決辦法
來(lái)源:易賢網(wǎng) 閱讀:2051 次 日期:2016-07-25 16:10:27
溫馨提示:易賢網(wǎng)小編為您整理了“使用bootstrap typeahead插件實(shí)現(xiàn)輸入框自動(dòng)補(bǔ)全之問(wèn)題及解決辦法”,方便廣大網(wǎng)友查閱!

根據(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ì)大家有所幫助

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)