提问人:Oříšek 提问时间:11/3/2020 更新时间:11/3/2020 访问量:1046
多个文本区域
Multiple textareas
问:
如何将多个 TextAreas 重置为其默认值(文本)?不给他们特定的课程可能吗?我只找到了一个文本输入的解决方案,但在 1 页上有多个文本区域没有成功,按功能重置。
<html>
<body>
<textarea rows="1" cols="30">Hello World</textarea><br/>
<textarea rows="1" cols="30">Hello Second World</textarea><br/>
<button onclick="reset()">Reset</button>
<script>
function reset() {
document.querySelectorAll('textarea').value = <!--Default Value-->
}
</script>
</body>
</html>
答:
0赞
Aritrik
11/3/2020
#1
您需要修改 js 脚本,如下所示:
function reset() {
document.querySelectorAll('textarea').forEach((elem) => elem.value = "Desiered value");
}
或者,您可以使用 HTML 占位符并将 textarea 值设为空。
评论
0赞
Oříšek
11/3/2020
谢谢你的回答,但我需要将textarea重置为默认文本= Hello world和Hello second world。不要将自定义值放在所有文本区域...
2赞
Bastiyan
11/3/2020
#2
这样的事情怎么样?
Address:<br>
<textarea id="myTextarea">
342 Alvin Road
Ducksburg</textarea>
<textarea id="myTextarea2">
Value 2</textarea>
<p>Click the button to change the contents of the text area.</p>
<button type="button" onclick="myFunction()">Try it</button>
<script>
function myFunction() {
document.getElementById("myTextarea").value = "Txt1";
document.getElementById("myTextarea2").value = "Txt2";
}
</script>
编辑以匹配注释中的用例
根据 MDN 的说法,textarea 没有 value 属性。
当页面加载时,textarea 的默认值是介于某个值之间的任何值。因此,当用户更改它时,我们没有办法找到原始值。
为了克服这个问题,我们需要某种机制来存储默认值
在你的例子中,如果你有很多元素(Textareas),使用数据属性将帮助我们在页面加载和用户更改值后识别默认值
因此,请使用以下示例
<textarea rows="1" cols="30" data-default="Default Val">Hello World</textarea><br/>
<textarea rows="1" cols="30" data-default="Default Val1">Hello World</textarea><br/>
<textarea rows="1" cols="30" data-default="Default Val2">Hello World</textarea><br/>
<button onclick="reset()">Reset</button>
<script>
function reset() {
var textareas = document.querySelectorAll('textarea');
for(i =0; i < textareas.length; ++i){
textareas[i].value = textareas[i].getAttribute('data-default');
}
}
</script>
评论
0赞
Oříšek
11/3/2020
感谢您的回复。这适用于很少的文本区域,但不幸的是,我在页面中有几十个文本区域,并且此脚本将不必要地广泛。我只需要选择页面中的所有文本区域并将其值设置为默认值......
0赞
Oříšek
11/3/2020
感谢您的回答,该答案:)正常工作有没有办法避免为每个文本区域手动写入 data-default 属性?像JS一样,在页面开头将data-default设置为某些文本区域的当前值?
0赞
Bastiyan
11/3/2020
您可以以相反的顺序考虑相同的过程。试一试,让我们知道它是怎么回事
0赞
Oříšek
11/3/2020
可以使用 textareas[i].setAttribute(“data-default”, textareas[i].value);:)
下一个:防止默认写信
评论
<form>
form.reset()
<input type="reset" />