2009-07-02 20 views
5

का उपयोग कर एक टेक्स्ट इनपुट बॉक्स में परिवर्तन का पता लगाने, मैं पाठ इनपुट में अधिकांश सामग्री परिवर्तनों का पता लगाने के लिए कीप, फोकस, धुंध का उपयोग कर सकता हूं, हालांकि यदि उपयोगकर्ता प्रतिलिपि बनाते हैं और पेस्ट करते हैं पाठ इनपुट, मैं इस परिवर्तन को कैप्चर कैसे करूं? यहां मुद्दा यह है कि उपयोगकर्ता पहले से ही फोकस में है जब उपयोगकर्ता इसमें पेस्ट करता है।एचटीएमएल और जावास्क्रिप्ट में jquery/जावास्क्रिप्ट

उत्तर

4

आप पेस्ट घटना (http://www.quirksmode.org/dom/events/cutcopypaste.html)

$("#myinput").bind("paste",function(){ 
    //code here 
}) 
+1

यह अच्छा है! दुर्भाग्यवश पेस्ट सभी ब्राउज़रों esp में समर्थित नहीं है। एफएफ 3 – user121196

3

टेक्स्टबॉक्स में एक ऑन चेंज इवेंट है जो आग लगता है जब ए) टेक्स्ट बॉक्स फोकस खो देता है और टेक्स्ट बॉक्स में मान बदल गया है।

+0

दुर्भाग्य से, यह, पेस्ट के लिए काम नहीं करता है क्योंकि ध्यान पाठ बॉक्स – user121196

+0

तुम में खो नहीं है जब उपयोगकर्ता चिपकाता कुछ PASTE को नहीं पकड़ते, आप इस तथ्य को पकड़ रहे हैं कि जब उपयोगकर्ता टेक्स्टबॉक्स छोड़ देता है तो मान संशोधित किया गया है। –

4
ले सकता है
$("#myinput").change(function(){ 
    // whatever you need to be done on change of the input field 
}); 

// Trigger change if the user type or paste the text in the field 
$("#myinput").keyup(function(){ 
    $(this).change(); 
}); 

// if you're using a virtual keyboard, you can do : 
$(".key").live('click',function(){ 
    $("#myinput").val($("#myinput").val()+$(this).val()); 
    $("#myinput").change(); // Trigger change when the value changes 
}); 
+0

परिवर्तन घटना केवल तभी ट्रिगर होती है जब आप उस इनपुट फ़ील्ड को छोड़ते हैं, न कि प्रत्येक कुंजीपटल पर। कीप एक गड़बड़ है क्योंकि आप टैब कुंजी दबा रहे हैं - यह अगले तत्व पर ईवेंट ट्रिगर करेगा, जिसे आप टैब करेंगे (कम से कम फ़ायरफ़ॉक्स 5.0 में)! इसके अलावा - आप कह रहे हैं कि पेस्ट पर कीप इवेंट ट्रिगर किया जाएगा? - यह केवल सही है अगर आप कुंजीपटल के माध्यम से पेस्ट करेंगे, ब्राउज़र संदर्भ मेनू से नहीं। – ThatGuy

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