我希望在重新提交尝试时使用类似于以下内容的方法来清除表单中的错误:
document.querySelectorAll("#form-error-name, #form-error-email, #form-error-tel, #form-error-dob, #form-error-password, #form-error-goal").innerHTML= "";
...但是div的内容没有被清除。我做错了什么?
答案 0 :(得分:4)
试试这个:
var x = document.querySelectorAll("#form-error-name, #form-error-email, #form-error-tel");
var i;
for (i = 0; i < x.length; i++) {
x[i].innerHTML = "";
}
看,如果有帮助。
答案 1 :(得分:2)
你需要循环结果
var errors = document.querySelectorAll(
"#form-error-name,
#form-error-email,
#form-error-tel,
#form-error-dob,
#form-error-password,
#form-error-goal");
[].forEach.call(errors, function(error) {
error.innerHTML = '';
});
querySelectorAll
不返回数组,而是返回一个节点列表,其原型上没有forEach
方法。
上面的循环在nodeList对象上使用数组对象原型上的forEach
方法。
答案 2 :(得分:0)
合适的现代答案应该是
[... document.querySelectorAll('input')].map(i => i.value = '');