2010-11-19 14 views
10

Bu komut dosyasını Bulunan DEĞİL:sayfadaki anahtarını girin, ancak textarea

 

function stopRKey(evt) { 
    var evt = (evt) ? evt : ((event) ? event : null); 
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
    if ((evt.keyCode == 13) && (node.type=="text")) {return false;} 
} 

document.onkeypress = stopRKey; 


Sadece mesele, o da textarea kullanılan anahtar varlık girmek durur. Bu bir güçlük. onkeypress="return handleEnter(this, event)"

Ama formları son derece karmaşıktır ve ben şeyler yapmanın daha temiz bir yol arıyorum:

kullanıyorum çeviriyorlardı var.

cevap

25

Sen th nodeName veya tagName kontrol etmeliyiz E olayı böyle, buradan hedef:

if (evt.keyCode == 13 && node.nodeName != "TEXTAREA") { return false; } 

fark ettim bu zaten jQuery kullandığınızı kabul edildikten sonra, sadece bu yukarıda tüm kodunuzu değiştirebilirsiniz:

$(document).keypress(function (e) { 
    if(e.which == 13 && e.target.nodeName != "TEXTAREA") return false; 
}); 
+0

Bu kodu olduğu gibi değiştirir miyiz yoksa nodeName değiştirmemiz mi gerekiyor? – 422

+0

@ 422 - bunun anlamı "if ((evt.keyCode == 13) && (node.type ==" text ")) {return false;} kod satırı… bu şekilde döndürülür. false 'içeri giriyor ve'