2012-01-30 53 views
2

我有一个问题与JQM时,如果我按Enter键,它提交所有表单,而不是活动的,所以我写了此代码禁用所有的ENTER键形式:禁用所有表单的按键事件,但活动与js

​​

但如何禁用所有形式的按键,但目前的?假设它有id =“activeOne”。所以我想工作回来为activeOne,但不是其他?谢谢

回答

2

你可以试试这个。在每一个表单点击或按键事件中,只需将表单ID设置为一个变量,然后检查bodykeypress事件并相应地采取行动。

var currentFormId; 
$('form').bind('click, keypress', function(){ 
    currentFormId = this.id; 
}); 

$('body').keypress(function (evt) {  
    //Enter key's keycode 
    if (evt.which == 13 
     && !$(evt.target).closest("form").is('#'+currentFormId)) { 
    return false; 
    } 
}); 
0

我不知道如果我的理解清楚,但是从我的理解下面的代码应该在这里做的伎俩,

DEMO - Enter键将只在第2个文本框。

$('body').keypress(function (evt) {  
    var activeElement = document.activeElement; 
    if ($(activeElement).closest('form').attr('id') == 'active') { 
     return true; 
    } else { 
     var charCode = evt.charCode || evt.keyCode; 
     if (charCode == 13 && !$(evt.target).is("textarea")) { //Enter key's keycode 
      return false; 
     } 
    } 
});