簡體   English   中英

Javascript 通過id在textarea中插入文字/笑臉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM