[英]Automatically convert a word into hashtag when selected inside a textarea of a form
我的html表單中有一個textarea,我想讓它成為一個字,當用戶在該textarea中選擇一個單詞時,它會自動標記為主題標簽(因此,#號會附加在前面),並轉換為已經存在的主題標簽存在的話,如果接近的話。
實現該功能所需的代碼是什么?
我可以自己執行2-3步,但對第1步和第4步很好奇。
謝謝!
PS:另外,在相關說明中,我想我最好將DIV用作我的文本區域,並在表格內創建一個隱藏的文本區域,以便復制用戶鍵入的內容,只是為了更靈活地操縱它的外觀,對嗎?
有一個名為jQuery MentionsInput的插件。 jquery.mentionsInput
是一個很小但很棒的UI組件,它使您可以“ @mention”文本消息中的某人,就像您在Facebook或Twitter上所習慣的那樣。
集成非常簡單:
向jquery.mentionsInput.js添加腳本引用:
<script src='jquery.mentionsInput.js' type='text/javascript'></script>
添加一些標記:
<textarea class='mention'>
初始化提及輸入:
$('textarea.mention').mentionsInput({ onDataRequest:function (mode, query, callback) { var data = [ { id:1, name:'Kenneth Auchenberg', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' }, { id:2, name:'Jon Froda', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' }, { id:3, name:'Anders Pollas', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' }, { id:4, name:'Kasper Hulthin', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' }, { id:5, name:'Andreas Haugstrup', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' }, { id:6, name:'Pete Lacey', 'avatar':'http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif', 'type':'contact' } ]; data = _.filter(data, function(item) { return item.name.toLowerCase().indexOf(query.toLowerCase()) > -1 }); callback.call(this, data); } });
你做完了!
要在該單詞前面附加一個字符,可以使用text.replace(“#” + text)。 要獲取所選文本,您需要使用跨瀏覽器解決方案。 JSFiddle
var getSelected = function(){
var t = '';
if(window.getSelection) {
t = window.getSelection();
} else if(document.getSelection) {
t = document.getSelection();
} else if(document.selection) {
t = document.selection.createRange().text;
}
return t;
}
$("#myElement").select(function(eventObject) {
var selectedText = getSelected().toString();
var statementReplace = $("#myElement").val();
var replacedString = statementReplace.replace(selectedText,"#" + selectedText);
$("#myElement").val(replacedString);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.