用户在输入字段中按Enter后,我按document.getElementById('text').value = "";
当我使用空格键迭代数组时,会显示多个具有相同ID的输入字段id='text'
输入第一个输入字段并按回车键后,输入字段清除。
然而,对于在外地进行的情况并非如此。我了解document.getElementById
只能找到第一个 ID。
如何清除所有输入字段的输入值。
'keydown #text': function(event, template) {
if ((27 === event.which) || (13 === event.which)) {
event.preventDefault();
document.getElementById('text').value = "";
}
},
答案 0 :(得分:6)
永远不要为多个元素使用ID。 ID是唯一的,它只能在HTML文档中出现一次。使用class或常规HTML元素选择器:
'keydown input[type="text"]': function(event, template) {
if ((27 === event.which) || (13 === event.which)) {
event.preventDefault();
//this should delete value from the input
event.currentTarget.value = "";
}
}
在HTML中:
<input type="text" />
<input type="text" />
答案 1 :(得分:1)
<强>解决方案强>:
您可以迭代所有匹配并清除其值。
$("[id='text']").each(function(){
$(this).val("");
});
jsfiddle上的工作示例,最初由@ abdullah评论
<强>推荐强>:
对多个元素使用相同的id不是一个好主意,id必须是唯一的。
使用Jquery libary如果包含它$("#id")
比document.getElementById("id")
答案 2 :(得分:0)
我会将事件监听器放在父级(例如表单)上。而不是
document.getElementById('text').value = "";
通过
var inputs = event.currentTarget.querySelector('input');
Array.prototype.forEach.call(inputs , function(el, i){
el.value = '';
});