我试图呈现一个可能的表情符号列表,当用户点击它们时,特定标记,例如: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>
表情符号示例和调用函数的样例
<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;
}}
欢迎任何帮助(对我的语言表示歉意)
document.getElementById(SendMessageForm);
更正为document.getElementById('SendMessageForm');
使用引号。 - Itagaki Fumihiko