如何从许多其他输入中找到触发keydown事件的特定输入框

时间:2015-02-01 17:06:23

标签: javascript jquery html

我有一个div包含许多input个框。我不希望用户能够在该字段中提交空格键 的 HTML

<div class="container">
Input1<input type="text">
Input2<input type="text">
</div>

的Javascript

$(".container :input").keydown(function(event){
    if(event.which == 32){
        //code to change the specific text box to = ""
    };
});

我已经尝试this.val() = "",但由于某种原因这似乎不起作用。

如果有替代方法通过html停止输入框接受空格,那么这将起作用。

2 个答案:

答案 0 :(得分:2)

我已在此处更新您的代码:http://jsfiddle.net/fg6p1ujz/

$(".container :input").keydown(function(event){
    if(event.which == 32){
        //uncomment if you want to clear the field 
        // $(this).val("");
        return false
    };
});

如果要禁用某个键,只要用户按下该键,您就可以返回false。您可以使用$(this).val(&#34;&#34;)

清除该字段

答案 1 :(得分:0)

在事件处理程序中,this关键字引用引发事件的元素。因此,您可以这样做:

$(".container :input").keydown(function(event) {
    if (event.which == 32) {
        $(this).val('');
    };
});

请注意,我已将this包装在jQuery对象中,以便我可以使用jQuery方法,例如val()prop()。然后我使用val()的设置器将字段的值设置为''

您也可以使用DOMElement本身的value属性在本机JS中执行此操作:

this.value = '';
相关问题