मैं पकड़ने कर रहा हूँ $('selector').on('input', function(event) { ... });
jQuery event.preventDefault() का उपयोग कर ('इनपुट') पर साथ
तब मैं परीक्षण करने के लिए क्या चिपकाया गया है कोशिश कर रहा हूँ और अगर यह प्रमाणीकरण में सफल नहीं होता है, को रद्द साथ पेस्ट घटनाओं event.preventDefault()
के साथ पेस्ट करें। दुर्भाग्यवश, जब तक श्रोता समारोह निष्पादित किया जाता है, तब तक पाठ को पहले ही चिपकाया जा चुका है और event.preventDefault()
कुछ भी नहीं करता है।
तो पेस्ट घटनाओं को पकड़ने का एक अच्छा तरीका क्या है, और यदि चिपकाया गया है तो यह सत्यापित नहीं होता है, पेस्ट को पूर्ववत/रोकें?
मुझे पता है कि मैं .on('paste', function(event) { ... })
का उपयोग कर सकता हूं, लेकिन यह मुझे पेस्ट के बाद चिपकने वाला या इनपुट तत्व की सामग्री नहीं देता है, जब तक कि मैं कुछ मिनट प्रतीक्षा समय के साथ setTimeout()
का उपयोग नहीं करता, और मैं चाहता हूं setTimeout()
का उपयोग करने से बचें।
क्या आप एक जेएसफ़िल उदाहरण बना सकते हैं? – j08691
'event.preventDefault() 'डिफ़ॉल्ट क्रिया को रोकता है, और जब' इनपुट 'ईवेंट को बाध्यकारी होता है, तो यह वास्तव में इनपुट में कुछ टाइप करने या पेस्ट करने से नहीं रोकता है? चिपकाए गए सामग्री से मूल्य को कैश करते समय, आपको इसे मानने के लिए इसे स्थगित करना होगा, लेकिन "कुछ मिनट" नहीं, टाइमआउट को शून्य पर सेट करें, और इसे अभी भी काम करना चाहिए। – adeneo
मुझे लगता है कि पेस्ट पर इनपुट के मूल्य को कैप्चर करने और 'मिनट' के बजाय मान्य करने के लिए' 100ms' टाइमआउट सेट करना ठीक है। – SRy