Javascript 单击后清除文本区域
我知道以前有人问过这个问题,但我正在根据我提供的代码寻找一个具体的答案:Javascript 单击后清除文本区域,javascript,html,button,textarea,Javascript,Html,Button,Textarea,我知道以前有人问过这个问题,但我正在根据我提供的代码寻找一个具体的答案: <script type="text/javascript"> function insertText(name, text) { var elem = document.getElementById(name); elem.innerHTML += text; } </script> ... <img src="/images/text1.png" onclick="insertText
<script type="text/javascript">
function insertText(name, text) { var elem = document.getElementById(name); elem.innerHTML += text; }
</script>
...
<img src="/images/text1.png" onclick="insertText('textbox1', 'Text to be displayed'); insertText('textbox2', 'Text to be displayed');">
<img src="/images/text2.png" onclick="insertText('textbox1', 'Text to be displayed'); insertText('textbox2', 'Text to be displayed');">
<img src="/images/clear.png" onclick="this.form.elements['textbox1'].value = ''; this.form.elements['textbox2'].value = '';">
...
<textarea id="textbox1" name="option1"></textarea>
<textarea id="textbox2" name="option2"></textarea>
函数insertText(名称,文本){var elem=document.getElementById(名称);elem.innerHTML+=text;}
...
...
它真的没有比这更基本的东西了(是的,我觉得缺少了一些基本的html内容,我把它剥离出来以便更好地展示出来)
单击事件与函数调用配合良好,并将文本附加到textarea。问题是,当我单击“清除”图像时,什么也没有发生。我看到很多例子,人们说这是可行的,但事实并非如此。单击“清除”按钮时,任何内容都不会清除。有什么想法吗?不要使用
.value
,只需再次使用.innerHTML
。我假设this.form.elements['textbox1']
与textbox1
相同,您正在使用elem.innerHTML+=text进行更改代码>。如果你使用
this.form.elements['textbox2'].innerHTML = "";
它会给你想要的结果
但是,您可能需要切换到值
。将所有对.innerHTML
的引用切换到.value
,它也会起作用。我建议使用jQuery:
<script type="text/javascript">
$(document).load(function(){
$("#insertText1").click(function(){
$("#textbox1").val("Text to be displayed");
});
$("#insertText2").click(function(){
$("#textbox2").val("Text to be displayed");
});
$("#insertTextClear").click(function(){
$("#textbox1").val("");
$("#textbox2").val("");
});
});
</script>
...
<img src="/images/text1.png" id="insertText1">
<img src="/images/text2.png" id="insertText2">
<img src="/images/clear.png" id="insertTextClear">
...
<textarea id="textbox1" name="option1"></textarea>
<textarea id="textbox2" name="option2"></textarea>
$(文档).load(函数(){
$(“#insertText1”)。单击(函数(){
$(“#textbox1”).val(“要显示的文本”);
});
$(“#insertText2”)。单击(函数(){
$(“#textbox2”).val(“要显示的文本”);
});
$(“#insertTextClear”)。单击(函数(){
$(“#textbox1”).val(“”);
$(“#textbox2”).val(“”);
});
});
...
...
要更改或更新文本区域
或输入
文本字段的内容,您不使用innerHTML
属性,而是使用值
属性。试试看
onclick="document.getElementById['textbox1'].value = ''; document.getElementById['textbox2'].value = '';">
ID应该是唯一的,因此不支持按ID搜索元素,因为img不是“表单元素”,它没有表单属性,即使它被放置在表单中也是如此
如果img
是表单的直接子级,则可以执行以下操作:
<img src=".." onclick="this.parentElement.elements['textbox1'].value = ''; this.parentElement.elements['textbox2'].value = '';" />
如果不是,请使用document.getElementById
来引用文本区域
但是,我建议您使用适当的事件处理,例如
也elem.innerHTML+=文本insertText()
中的code>可能会阻止对文本区域进行进一步的编程编辑。使用value
而不是innerHTML
你在什么地方有表单吗?img
不是“表单元素”,它没有form
属性,即使它被放在表单中也没有。更改此
这是真的,但是如果是这样的话,那么为什么添加文本的按钮工作得很好呢?@hex是的,原始的img.form
中存在工作表单标记,并且textarea
不能有HTML:(.不使用这个.form,只需切换回原始语法:document.getElementById('textbox1')).innerHTML='';或者我不知道如何编码,或者这不起作用:/I我尝试了这一点,还更改了代码使其变得非常简单,但是没有骰子elem.innerHTML+=text;->elem.value+=text;
this.form.elements['textbox1'].value='';->document.getElementById('textbox1')).value=''
同样适用于textbox2代码,它应该可以工作。感谢Derongan和其他人,但是这些更改不起作用。无论我做什么,当我单击“清除”按钮时,它都不起作用,或者至少不起任何作用。完整的源代码中也没有错误,因此这确实令人费解!不过,在你的提琴,一旦清除,你就不能再添加它了…哎呀,我没有注意到复制粘贴函数中的innerHTML
,它应该是value
。我已经更新了提琴。感谢大家。事实证明,我有一个名为function clear(name)的函数,显然你不能调用函数“clear”,因为一旦我更改了它(对“remoteText”)成功了!如果只是为了清除textarea
,为什么要使用jQuery?