एंटर दबाते समय ऑनक्लिक केवल एक इनपुट के साथ आग नहीं करता है

मुझे इंटरनेट एक्सप्लोरर 7 में घटनाओं में परेशानी हो रही है।

जब मेरे पास दो या अधिक इनपुट [type = text] के साथ कोई फ़ॉर्म है और मैं एंटर दबाता हूं, तो ईवेंट इस क्रम में होता है:

  1. सबमिट बटन ( onClick )
  2. फॉर्म ( ऑन सबमिट करें )

नमूना कोड:

<form onSubmit="{alert('form::onSubmit'); return false;}">
    <input type="text">
    <input type="text">
    <input type="submit" onClick="{alert('button::onClick');}">
</form>

If I have only one input[type=text] and I press enter the submit button onClick event doesn't fire. नमूना कोड:

<form onSubmit="{alert('form::onSubmit'); return false;}">
    <input type="text">
    <input type="submit" onClick="{alert('button::onClick');}">
</form>
0
ro fr bn
जोड़ा लेखक lawnsea, स्रोत

6 उत्तर

If you want code to run when the user presses enter, just use the onSubmit handler.

यदि आप बटन दबाते हैं तो कोड चलाने के लिए कोड चाहते हैं, और नहीं जब उपयोगकर्ता एंटर दबाता है, तो टाइप = "सबमिट" के अलावा किसी अन्य बटन का उपयोग करें।

0
जोड़ा

जिज्ञासा से बाहर, क्या आप एक डॉक्टरेट का उपयोग कर रहे हैं, और यदि हां, तो कौन सा? मैं DOCTYPE के साथ असंगतता नहीं कह रहा हूं, लेकिन क्विर्क मोड कुछ और करने की कोशिश करने से पहले बाहर निकलने के लिए कुछ है।

0
जोड़ा

ब्राउज़रों की सुबह से, एक फॉर्म में एक इनपुट इनपुट सबमिट बटन के साथ या उसके बिना प्रवेश पर सबमिट करेगा। लोगों को एक खोज क्षेत्र से साइट खोजने के लिए यह आसान बनाना था।

यदि आपको किसी रूप में कुछ जावास्क्रिप्ट निष्पादित करने की आवश्यकता है, तो सबमिट बटन के ऑनक्लिक में स्क्रिप्ट निष्पादित करने के बजाय फ़ॉर्म के ऑनसमेट (और सबमिट करने के लिए झूठी वापसी) का उपयोग करना सुरक्षित अभ्यास है। यदि आपको किसी बटन से जावास्क्रिप्ट निष्पादित करने की आवश्यकता है, तो टाइप = "सबमिट करें" के बजाय टाइप = "बटन" का उपयोग करें - उम्मीद है कि यह स्पष्ट है कि मेरा क्या मतलब था

0
जोड़ा
मैंने डाउनवोट नहीं किया, लेकिन मुझे अंतिम वाक्य को पार्स करने में परेशानी हो रही है। ("सबमिट बटन के क्लिक पर कुछ भी नहीं करें लेकिन हमेशा इसे करें ... बटन पर क्लिक करें" ???)
जोड़ा लेखक Tim Pietzcker, स्रोत
इस टिप्पणी पर मुझे वोट क्यों दिया जाएगा ???
जोड़ा लेखक mplungjan, स्रोत

यदि बटन वास्तव में क्लिक किया जाता है (या जब फोकस होता है और उपयोगकर्ता क्लिक करता है) बटन को चालू करने के लिए तर्क जोड़ दिया जाता है, तो बटन पर क्लिक करना चाहिए (मुझे लगता है) केवल आग लगाना चाहिए।

अतिरिक्त टेक्स्टबॉक्स का जोड़ संभवतः आपके तत्वों के टैब ऑर्डर को बदल रहा है (शायद बटन को उस मामले में डिफ़ॉल्ट नियंत्रण बना रहा है)?

0
जोड़ा

दिलचस्प बात यह है कि यदि आप स्क्रीन पर क्लिक करते हैं (टेक्स्टबॉक्स से फोकस हटाएं) दूसरे उदाहरण पर केवल एक टेक्स्टबॉक्स के साथ, ईवेंट पर क्लिक करें ... तो यह अपेक्षित व्यवहार नहीं है क्योंकि यह तब होता है जब आपके पास केवल एक टेक्स्टबॉक्स होता है और आपके पास टेक्स्टबॉक्स पर फ़ोकस है।
मुझे डर है कि आपको ब्राउज़र पर एक बग मिला है और आपको एक वर्कअराउंड ढूंढना होगा, या उस मामले में ऑनक्लिक ईवेंट का उपयोग करने से बचें।
मैं मान्यताओं के लिए ऑनसममिट ईवेंट का उपयोग करता हूं क्योंकि यह एक "सुरक्षित" ईवेंट है जो विभिन्न ब्राउज़रों और परिस्थितियों पर काम करने की अधिक संभावना है।

0
जोड़ा

आप उस स्थिति को फिर से बनाने के लिए एक डमी छुपा इनपुट तत्व शामिल करना चाहेंगे जहां आपके पास दो इनपुट तत्व थे ... इस तरह, आपको दोनों घटनाएं निकाल दी जाएंगी

<form onSubmit="{alert('form::onSubmit'); return false;}">
    <input TYPE="text">
    <input type="hidden" name="dummy">
    <input TYPE="submit" onClick="{alert('buttom::onClick');}">
</form>

आईई में बहुत सारे भ्रमित फिक्स हैं जो हमारे कोड की संगतता में सुधार के लिए किए जाने की आवश्यकता है

0
जोड़ा