2011-08-30 14 views
5

जैसा कि हम जानते हैं कि टाइप करते समय बहुत सी घटनाएं ट्रिगर हो जाएंगी।JQuery/DOM ईवेंट?

जैसे कि कीप, कीडाउन, कीप्रेस या कुछ और।

क्या कोई अन्य ईवेंट तभी ट्रिगर किया जाएगा जब टेक्स्ट फ़ील्ड में सामग्री बदल दी जाए? और यदि ऐसा नहीं है, तो इस सुविधा को पूरा करने के लिए कुछ जावास्क्रिप्ट कोड कैसे लिखें

+0

क्या आप अपने उपयोग के मामले में और अधिक विस्तार से बात करेंगे? शायद यह हासिल करने का एकमात्र तरीका आपके स्वयं के वेब-आधारित इनपुट विधियां प्रदान कर रहा है। –

उत्तर

2

change ईवेंट सहायता कर सकता है?

+0

नहीं, क्योंकि परिवर्तन पहचानता है क्षेत्र में सामग्री या बदल कि क्या नहीं है, लेकिन यह ट्रिगर नहीं किया जाएगा जब तक आप एंटर दबाएं या क्षेत्र फोकस – castiel

+0

खो दिया इससे पहले कि आप अपने स्ट्रिंग (जैसे "Enter" के रूप में) के लिए प्रतिबद्ध, स्ट्रिंग वास्तव में इनपुट विधि के पूर्वसंपादित बफर में संग्रहित है। अर्थात ब्राउज़र क्या आप वास्तव में क्या टाइप इससे पहले कि आप स्ट्रिंग प्रतिबद्ध पता नहीं चलेगा। –

0

मैंने यह निर्धारित करने के लिए एक साधारण पहेली बनाई है कि क्या होता है जब एक संसाधित तत्व में एक टेक्स्ट नोड एक कुंजी प्रेस द्वारा संशोधित किया जाता है। जैसे ही मैं ऐसा कर रहा था, मैंने यह जांचने का फैसला किया कि इबस का उपयोग करते समय क्या होता है क्योंकि मैं अपने काम के लिए इब्स का उपयोग करता हूं। मैंने निर्धारित किया कि जब इबस का उपयोग किया जाता है, तो उत्पन्न एकमात्र कीबोर्ड ईवेंट which मान के साथ एक कीप घटना है जो बेकार है।

http://jsfiddle.net/lddubeau/jWnL3/

  1. कि बेला पर जाएँ:

    यहाँ बेला मैं बनाया है।

  2. अपने जावास्क्रिप्ट कंसोल को चालू करें।

  3. रन पर क्लिक करें।

  4. "toto" शब्द के 2 डीएन और तीसरे चरित्र के बीच क्लिक करें।

  5. आईबस का उपयोग करके कुछ टाइप करें। उदाहरण के लिए, टाइप करें 我।

  6. आउटपुट आपके ब्राउज़र के आधार पर भिन्न होता है। क्रोम 2 पर प्रत्येक कीस्ट्रोक रिकॉर्ड किया जाता है, इसलिए यदि मैं tonepy विधि का उपयोग करके 我 टाइप करता हूं तो मुझे प्रत्येक "w" "o" "3" और "1" के लिए कीप और कीडाउन मिलती है। (पिनयिन, स्वर और फिर 1 से टकराने पहली पसंद का चयन करें।) अंतिम घटना है:

    event type: keyup 
    which: 229 
    keyCode: 229 
    charCode: 0 
    node value: 
        to我to 
    

    घटनाओं इस एक से पहले सभी कुछ सिवाय इसके कि एक ही मान हैं "keydown" प्रकार के होते हैं और निश्चित रूप से नोड मान अंतिम घटना तक "toto" दिखाता है।

    फ़ायरफ़ॉक्स 23 केवल एक ही घटना में पंजीकृत है:

    "event type:" "keyup" 
    "which:" 49 
    "keyCode:" 49 
    "charCode:" 0 
    "node value:" " 
        to我to 
    " 
    

    नहीं keydown या कुंजी दबाने घटनाओं उत्पन्न कर रहे हैं। (जब ascii सीमा के भीतर वर्णों को लिखने, आप keydown, प्रत्येक कुंजी के लिए कुंजी दबाने और KeyUp मिलता है।)

मूल्यों जो और कीकोड का कुछ भी समझदार के अनुरूप करने के लिए नहीं है। मैं ईवेंट हैंडलर के लिए पारित घटना वस्तु की जांच की है और किसी भी क्षेत्र है जो संकेत मिलता है कि उपयोगकर्ता सिर्फ 我 टाइप किया नहीं देखा।

संबंधित मुद्दे