2009-02-16 6 views
6
function onlyNumeric() { 
    if (event.keyCode < 48 || event.keyCode > 57) { 
     event.returnValue = false; 
    } 

} 

onkeypress=onlyNumneric(); 

आईई में, यह कोड ठीक काम कर रहा है। हालांकि, मोज़िला फ़ायरफ़ॉक्स में, घटना एक अपरिभाषित त्रुटि है।घटना जावास्क्रिप्ट फ़ंक्शन के लिए मोज़िला फ़ायरफ़ॉक्स में परिभाषित नहीं है?

उत्तर

16

एफएफ/मोज़िला में ईवेंट आपके ईवेंट हैंडलर को पैरामीटर के रूप में पास कर दिया जाता है। आईई में लापता घटना तर्क के आसपास पाने के लिए निम्न की तरह कुछ उपयोग करें।

function onlyNumeric(e) 
{ 
    if (!e) { 
     e = window.event; 
    } 

    ... 
} 

आप पाएंगे कि दोनों के बीच कुछ और अंतर भी हैं। यह link पर कुछ जानकारी है कि कैसे पता लगाएं कि क्रॉस-ब्राउज़र तरीके से कौन सी कुंजी दबाई जाती है।

+2

उम्र पुरानी समस्या .. पुरानी समाधान ... आश्चर्य जब हम ब्राउज़र युद्ध खत्म होने देंगे! ;-) – Cerebrus

2

या काफी बस, पैरामीटरघटना नाम और यह सभी ब्राउज़रों में काम करेंगे।

$('#' + _aYearBindFlds[i]).on('keyup', function(event) { 
    if(! ignoreKey({szKeyCodeList: gvk_kcToIgnore, nKeyCode: event.keyCode })) this.value = this.value.replace(/\D/g, ''); 
    }); 

यह उदाहरण अंक केवल (प्रत्येक पाश चयनकर्ता के लिए एक के अंदर) साल क्षेत्रों के लिए दर्ज किए जाने की जहां ingoreKey() किसी कीकोड सूची/सरणी लेता है और घटना कीकोड तुलना करता है और अगर निर्धारित करता है की अनुमति देता है: यहाँ एक उदाहरण है jQueryish बाइंड घटना को फायर करने से पहले इसे अनदेखा किया जाना चाहिए।

संदर्भ/वांछित व्यवहार के आधार पर आमतौर पर मास्क/अन्य के लिए मैं जो कुंजी करता हूं वह तीर, बैकस्पेस, टैब होते हैं।

तुम भी आम तौर पर event.keyCode event.which के बजाय अधिकांश ब्राउज़र में, उपयोग कर सकते हैं कम से कम जब आप jQuery जो event.which पर निर्भर करता है का उपयोग कर रहे कुंजी और माउस की घटनाओं को सामान्य बनाने में।

मुझे यकीन है कि क्या जे एस इंजन में कवर के तहत होता है के लिए पता नहीं है, लेकिन यह मोज़िला एफएफ का सम्मान करता है एक सख्त गुंजाइश, जिसमें, अन्य ब्राउज़र स्वत: पर window.event.keyCode गुंजाइश को संबोधित कर रहे हो सकता है लगता है उनके स्वयं जब घटना को किसी फ़ंक्शन या क्लोजर में स्पष्ट रूप से पास नहीं किया जाता है।

एफएफ में, आप ईवेंट को window.event (जैसा कि यहां कुछ उदाहरणों में दिखाया गया है) को संबोधित कर सकते हैं जो इस विचार का समर्थन करेगा।

0

कुछ ब्राउज़र कीकोड समर्थन नहीं कर सकते आप keyChar

उपयोग करने के लिए
function onlyNumeric() { 
    var chars = event.keyCode | event.keyChar; 
    if (chars < 48 || chars > 57) { 
     event.returnValue = false; 
    } 

} 

onkeypress=onlyNumneric(); 
संबंधित मुद्दे