[英]Insert text before and after selection in textarea with javascript
[英]Javascript insert text / smily in textarea by id
我試圖展示一個可能的表情符號列表,當用戶點擊它們時,特定標記:P 或:+ 例如應該張貼在他或她已經輸入的文本之后或之間的文本區域中。 我不能讓它工作。 我究竟做錯了什么?
文本區:
<textarea id="SendMessageForm" cols=1 rows=1 oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"' type="text" wrap="virtual" data-token="<?php echo $token; ?>" data-messageto="<?php echo $LoadMessageFromUser; ?>" class="form-control hass-message-input" placeholder="Type your message"></textarea>
表情符號示例和撥打 function
<img src="emoticons/clown.gif" alt="Emoticon" onClick="insertEmoticon(':+');" />
<img src="emoticons/puh2.gif" alt="Emoticon" onClick="insertEmoticon(':P');" />
Javascript 讓這一切發生
function insertEmoticon(smiley){
var myField = document.getElementById(SendMessageForm);
if (document.selection) {
myField.focus();
var sel = document.selection.createRange();
if (sel.text == "") {
sel.text += smiley;
myField.focus();
} else {
sel.text = smiley;
}
} else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
if (startPos == endPos) {
} else {
var str = myField.value.substring(startPos, endPos);
}
var myVal = smiley;
myField.value = myField.value.substring(0, startPos)+ myVal + myField.value.substring(endPos, myField.value.length);
} else {
myField.value += smiley;
}}
歡迎任何幫助(對不起我的語言)
您的代碼的問題是您沒有用引號將傳遞給getElementById
的值括起來。
要解決這個問題,只需使用下面的代碼。
document.getElementById("SendMessageForm");
不同之處在於,與您的代碼不同,此代碼的SendMessageForm
被引號括起來。
如果您不使用引號將值括起來,則 JavaScript 將開始查找名為SendMessageForm
的變量,並使用該值。
通過用引號將其括起來,您表示您想要明確搜索SendMessageForm
。
總之,您需要用引號將SendMessageForm
括起來,以表示它不是變量,而是string
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.