2012-01-30 69 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; 
     } 
    } 
});