按Enter键清除输入字段

时间:2015-05-16 15:33:30

标签: javascript jquery meteor

用户在输入字段中按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 = "";

    }
},

3 个答案:

答案 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评论

<强>推荐

  1. 对多个元素使用相同的id不是一个好主意,id必须是唯一的。

  2. 使用Jquery libary如果包含它$("#id")document.getElementById("id")

  3. 更简单整洁

答案 2 :(得分:0)

我会将事件监听器放在父级(例如表单)上。而不是

document.getElementById('text').value = "";

通过

var inputs = event.currentTarget.querySelector('input');
Array.prototype.forEach.call(inputs , function(el, i){
    el.value = '';
});