我想使用我的按钮在textarea
字段中已经存在的内容下面添加一行文本。有时它被填充,有时它不被填充(由$Item["description"]
确定(。
当我在W3schools编辑器中尝试它时,它是有效的,那么我缺少什么呢?这与在文本区域内放置div有关吗?
function addNewMessage() {
document.getElementById("container").innerHTML += "<p><em>Here is the new message!</em></p>";
}
<textarea name='short_description' id='short_desc' form='edit_item'>
<div id='container'>Foo bar</div>
</textarea>
不能在<textarea>
中放置其他元素。请改用contenteditable
div元素。
function addNewMessage() {
document.getElementById("container").innerHTML += "<p><em>Here is the new message!</em></p>";
}
#container {
border: 1px solid black;
padding: 2px;
}
<div id="container" contenteditable></div>
<input type='button' class='inputbutton' value='Add New Message' onclick="addNewMessage()">
问题是因为您的HTML无效,并且您试图在JS中更新它的方式不正确。textarea
元素只能包含文本,而不能包含呈现的HTML,因此将<div id="container" />
元素放置在那里将不起作用。
要执行所需操作,请更改HTML,使textarea
仅包含文本,然后更新JS以检索#short_desc
元素,并更新其value
而不是innerHTML
:
function addNewMessage() {
document.getElementById("short_desc").value += "Here is the new message! ";
}
textarea {
width: 400px;
height: 100px;
}
<textarea name="short_description" id="short_desc" form="edit_item">Foo bar </textarea>
<input type="button" class="inputbutton" value="Add New Message" onclick="addNewMessage()" />