2016-08-04 5 views
7

मैं input[type="date"] तत्व के लिए एक पेस्ट ईवेंट कैप्चर करने का प्रयास कर रहा हूं। क्रोम में आप इस प्रकार के तत्व में कॉपी/पेस्ट नहीं कर सकते हैं, इसलिए एक वर्कअराउंड के रूप में मैं इसे DIV तत्व में onpaste ईवेंट के साथ लपेटने की कोशिश कर रहा हूं। मुझे जो समस्या आ रही है वह यह है कि यदि आप दिनांक इनपुट पर क्लिक करते हैं और दबाएं CTRL + वी कुछ नहीं होता है। हालांकि, अगर आप पहले शरीर में कहीं और क्लिक करें और उसके बाद की तारीख इनपुट और प्रेस CTRL + वी, यह काम करता है ...यह ऑनपेस्ट घटना क्यों फायरिंग नहीं कर रही है?

<div onpaste="alert('test')"> 
    <input type="date"> 
</div> 

डेमो:

https://jsfiddle.net/4qh31tn0/

संपादित करें: ठीक है, इसलिए यह पता चला है कि onpaste ईवेंट DIV पर नहीं होना चाहिए, इसे INPUT तत्व पर ले जाया जा सकता है, लेकिन समस्या बनी रहती है। अगर मैं jsfiddle लोड करता हूं, तो इनपुट पर क्लिक करें और CTRL + वी दबाएं, कुछ भी नहीं होता है। अगर मैं INPUT तत्व के बाहर किसी ऐसे स्थान पर क्लिक करें पहले से तो इनपुट क्लिक करें और प्रेस CTRL + वी, यह काम करता है ...

+0

यह क्रोम में एक बग की तरह लग रहा है जो केवल दिनांक इनपुट को प्रभावित करता है। –

+0

आप कुंजीपटल ईवेंट का उपयोग क्यों नहीं कर रहे हैं और डायनामिक पर टेक्स्ट में दिनांक बदल सकते हैं और फिर से बदल सकते हैं। –

+0

खोला गया https://bugs.chromium.org/p/chromium/issues/detail?id=634426 –

उत्तर

0

जबकि इस बग (मुझे लगता है कि यह एक बग है) निश्चित नहीं है आप के बजाय कर सकते हैं पता लगाएं कि दिनांक इनपुट changedonkeydown, onkeyup, onclick, onblur और अन्य घटनाओं का उपयोग कर रहा है या नहीं।

+0

मेरा प्रश्न फिर से देखें। यह * काम * करता है, लेकिन केवल तभी जब आप इसे कोशिश करने से कम से कम एक बार पृष्ठ पर कहीं और क्लिक कर चुके हैं। यह स्पष्ट रूप से एक बग है। –

+0

@Chris_F लेकिन यह एक बग है, जबकि यह विचार है। यदि आप नहीं चाहते कि बग हो रहा है, तो जवाब में कहा गया है कि 'बदले' ईवेंट को पॉलीफिल करने का प्रयास करें। – Hydro

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