I.e.如何修改Twitter's bootstrap typeahead代碼忽略符號@之前的所有內容?所以,當用戶輸入電子郵件時,一旦輸入@,我們應該從預先定義的列表(例如gmail.com,yahoo.com,att.net等)爲他推薦域名。如何使用Twitter的引導程序typeahead實現電子郵件自動完成?
1
A
回答
1
不,你不能沒有一些額外的魔法。幸運的是,這個魔法非常簡單而有趣。我真的很喜歡解決這個難題:)
請考慮這個example我創建了。
$.fn.typeahead.Constructor.prototype.select = function() {
var val = this.$menu.find('.active').attr('data-value'),
newVal = this.$element.val().replace(/@.*$/, '@' + val);
this.$element.val(newVal);
this.$element.change();
return this.hide();
};
$('#email').typeahead({
source: ['gmail', 'hotmail', 'yahoo'],
matcher: function(item) {
var m = this.query.indexOf('@'),
search;
if (!~m) {
return false;
}
search = this.query.substr(m + 1).toLowerCase();
return search.length && ~item.toLowerCase().indexOf(search);
}
});
首先,您需要定義您的自定義matcher
函數,以便定義哪些值被認爲是合適的。這很容易。複雜的部分是您需要更改Typeahead原型,以便使插件能夠設置正確的輸入字段的新值:例如不是gmail
,'雅虎',但像[email protected]
等完整的電子郵件地址等。
0
其實我們不需要做一些擴展,只需使用像這樣的ajax函數。
$('.typeahead').typeahead({
source: function (typeahead, query) {
var con = $('#input1').val();
var atpos = con.indexOf('@');
if(atpos==-1){
return [con+'@gmail.com',con+'@sina.com',con+'@qq.com',con+'@126.com'];
}else if(atpos>0){
//get value before @
var tmp = con.substr(0,atpos);
return [tmp+'@gmail.com',tmp+'@sina.com',tmp+'@qq.com',tmp+'@126.com'];
}else{
}
//return ['alpha','beta','bravo','delta','epsilon','gamma','zulu'];
}
});
相關問題
- 1. 使用引導程序3和Twitter typeahead.js進行自動完成
- 2. twitter-typeahead未自動完成或選擇
- 3. 如何使用無引導的離子實現typeahead
- 4. Twitter引導-typeahead
- 5. 如何使用ShareKit實現Twitter,電子郵件,tumblr
- 6. 如何使用引導程序發送電子郵件模板?
- 7. 使用引導程序typeahead
- 8. Twitter如何在iPhone應用程序中實現新的自動完成功能?
- 9. 實現Outlook電子郵件發送到Windows窗體的自動完成
- 10. 使用jQuery自動完成或Twitter Typeahead與Aurelia
- 11. 下拉列表自動完成使用Twitter的引導
- 12. 如何在android中實現電子郵件應用程序
- 13. Typeahead自動完成:使用模板
- 14. 使用ElasticSearch支持typeahead自動完成
- 15. 輸入電子郵件ID時自動完成電子郵件ID建議
- 16. 如何在MVC應用程序中實現自動完成?
- 17. 自動完成/ Typeahead示例?
- 18. MVC - Bootstrap自動完成Typeahead
- 19. Twitter動態輸入字段上的Typeahead自動完成功能
- 20. 爲CLI應用程序實現自動自動完成
- 21. 如何在iphone中使用線程實現自動完成textfield
- 22. 自動完成庫(不是「如何實現自動完成」)?
- 23. django的引導程序typeahead
- 24. 如何使用twitter引導程序?
- 25. Twitter的引導程序框架是否支持寫電子郵件?
- 26. 將下拉按鈕添加到Twitter引導程序typeahead組件
- 27. 如何使用ajax實現自動完成插件?
- 28. Twitter Bootstrap Typeahead文本字段名稱自動完成的屬性
- 29. 使用Solr實現自動完成
- 30. 如何在symfony 3中使用twitter/tyepahead.js和blodhound來實現自動完成
不錯;)感謝您的代碼。有什麼方法可以在下拉菜單中顯示完整的電子郵件([email protected],[email protected])? (所以用戶不會對選擇的值(gmail.com,mail.com)將替換他輸入的內容(tomas)感到困惑嗎? – 2012-04-12 13:20:01
在這個世界上一切皆有可能!http://jsfiddle.net/hyxMh/7/ – dfsq 2012-04-12 13:53:27
或者甚至更好:http://jsfiddle.net/hyxMh/8/ – dfsq 2012-04-12 13:55:35