在我的工作中,我们必须填写很多文本框来进行一些验证。毕竟,我们需要一个接一个地擦除所有内容以重新启动该过程。
有没有办法用javascript擦除所有文本框内容(我们现在唯一可以使用的方法)?也许是 for 循环?
您应该将所有输入字段放在一个表单中,然后通过.reset()
方法重置表单。
document.getElementById("reset").onclick= ()=>{
document.getElementById("form").reset()
}
<form id="form">
<input/>
<input/>
</form>
<button id="reset">Reset</button>
查看 W3Schools 上的示例或 MDN 上的文档
如果要将字段恢复为其初始值,请按照@dota2pro的答案的建议重置表单。
OTOH,如果你想清除元素,不管它们的初始值如何,你可以使用类型(又名"标签")CSS选择器通过Document.querySelectorAll()
查询元素 并循环访问元素,如下所示:
function go() {
let inputs = document.querySelectorAll('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].value = '';
}
}
<input type="text" value="a"><br>
<input type="text" value="b"><br>
<input type="text" value="c"><br>
<br>
<button onclick="go()">click to clear</button>
请注意:
document.querySelectorAll('input')
获取所有<input>
,而不考虑其type
属性。document.querySelectorAll('input[type="text"]')
获取所有<input type="text">
。document.querySelectorAll('textarea')
获取所有<textarea>
。- 如果要合并,可以使用逗号组合器:
document.querySelectorAll('input[type="text"],textarea')
你可以在javascript中以不同的方式获得:
- 按 ID :
document.getElementById("id")
- 按班级:
document.getElementsByClassName("class")
-
按标签:
document.querySelectorAll("input")
或 Jquery
- 按 ID :
$("#id")
- 按班级:
$(".class")
- 按标签:
$("input")
在此处阅读相关文档
tru
[...document.querySelectorAll('input')].map(x=>x.value='')
var clean = () => [...document.querySelectorAll('input')].map(x=>x.value='');
<button onclick="clean()">Clear</button><br>
<input type="text" value="some"><br>
<input type="text" value="short"><br>
<input type="text" value="text"><br>
波纹管代码将选择所有可编辑的文本框
document.querySelectorAll('input[type="text"]:not(:disabled):not([readonly]))')
如果你有可用的 JQuery,你可以做:
$('input[type="text"]').val('');
或者,如果您更喜欢本地版本:
for(var i = 0; i < document.getElementsByTagName('input').length; i++){
document.getElementsByTagName('input')[i].value = '';
}