2010-11-19 13 views
10

में इस स्क्रिप्ट मिला:अक्षम पृष्ठ पर कुंजी दर्ज करें, लेकिन नहीं पाठ क्षेत्र

 

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; 


केवल मुद्दा है, यह भी कुंजी पाठ क्षेत्र में इस्तेमाल किया जा रहा है में प्रवेश बंद हो जाता है। जो एक परेशानी है।

मैं का उपयोग कर के साथ toyed है: onkeypress="return handleEnter(this, event)"

लेकिन हमारे रूपों बेहद जटिल हैं, और मैं काम करने के एक क्लीनर तरीका के लिए देख रहा हूँ।

उत्तर

25

आप nodeName या वीं के tagName जांच करने की आवश्यकता ई घटना यहां लक्षित करते हैं, इस तरह:

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

मैंने देखा के बाद यह है कि आप पहले से ही jQuery का उपयोग कर रहे स्वीकार कर लिया गया है, तो आप सिर्फ इस के साथ ऊपर अपने सभी कोड की जगह ले सकता:

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

क्या हम उस कोड को संशोधित करते हैं, या क्या हमें नोडनाम बदलने की आवश्यकता है? – 422

+0

@ 422 - यह 'if ((evt.keyCode == 13) && (node.type ==" text ") को प्रतिस्थापित करने के लिए है) {{वापसी झूठी;} 'कोड की रेखा ... इस तरह यह' गलत 'यह दर्ज है और यह '