Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击后清除文本区域_Javascript_Html_Button_Textarea - Fatal编程技术网

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?