2010-01-24 9 views
39

मान लीजिए मैं निम्नलिखित HTML प्रपत्र है:यदि किसी HTML फॉर्म में दो <इनपुट प्रकार = "सबमिट करें"> बटन हैं, तो मुझे कैसे पता चलेगा कि किस पर क्लिक किया गया था?

<form> 
... 
<input type="submit" name="queue" value="Queue item"> 
<input type="submit" name="submit" value="Submit item"> 
</form> 

मुझे कैसे पता चलेगा कि कौन सा बटन उपयोगकर्ता (जावास्क्रिप्ट का उपयोग किए बिना) क्लिक किया?

मैंने सबमिट किए गए डेटा को देखा और ऐसा लगता है कि जब "Queue Item" क्लिक किया जाता है तो "queue" = "Queue Item" सर्वर पर भेजा जाता है। और जब "Submit item" पर क्लिक किया गया तो "submit" = "Submit item" सेट भेजे गए।

क्या मैं इस व्यवहार पर भरोसा कर सकता हूं? क्या यह एचटीएमएल रूपों पर मानक में कहीं भी दस्तावेज है? तुम लोग यह कैसे करते हो?

+1

[एक फॉर्म में दो सबमिट बटन] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/547821/two-submit-buttons-in-one-form) –

उत्तर

49

हां, आप इस पर भरोसा कर सकते हैं; यह पूरी तरह से here दस्तावेज है। विशिष्ट प्रासंगिक पंक्तियां कहते हैं:

जब प्रसंस्करण के लिए कोई फॉर्म सबमिट किया जाता है, तो कुछ नियंत्रणों का नाम उनके वर्तमान मूल्य के साथ जोड़ा जाता है और इन जोड़े को फ़ॉर्म के साथ सबमिट किया जाता है। जिन नियंत्रणों के लिए नाम/मूल्य जोड़े सबमिट किए जाते हैं उन्हें सफल नियंत्रण कहा जाता है।

और

एक रूप से अधिक सबमिट बटन, केवल प्रस्तुत सक्रिय बटन सफल हुआ दें।

+13

जब उपयोगकर्ता बटन दबाए रखने के बजाय एंटर बटन दबाता है, तो फ़ॉर्म पर पहला सबमिट बटन सक्रिय बटन होगा। – Scharrels

+4

नहीं, आप वास्तव में इस व्यवहार पर भरोसा नहीं कर सकते हैं।आईई 6 में आपको सबमिट किए गए दोनों बटनों का मूल्य मिलेगा - सिर्फ इसलिए कि इसका मानक इसका अर्थ यह नहीं है कि इसका सही ढंग से कार्यान्वित किया गया है। – Erik

+0

एस * टी। तब मैं क्या करूँ, एरिक? – bodacydo

3

आप इस व्यवहार पर भरोसा कर सकते हैं। आपको इनपुट का मूल्य मिलता है। मैं एक छिपे हुए फॉर्म मान को टॉगल करने के लिए javascript का उपयोग करूंगा, लेकिन चूंकि आपने javascript का उल्लेख नहीं किया है, इसलिए आपके पास एकाधिक विकल्प नहीं हैं।

यह एक मानक है। चूंकि यह input टैग है, और इसमें value है, जिसका अर्थ है कि आपको value सबमिट किया गया है।

4

हाँ आप उस व्यवहार पर भरोसा कर सकते हैं।

जब <input type="submit" name="queue" value="Queue item"> क्लिक किया गया है, तो फ़ील्ड "कतार" सेट हो जाएगी और "सबमिट" नहीं होगा।

जबकि जब अन्य क्लिक किया जाता है, तो फ़ील्ड "सबमिट" सेट हो जाएगा, और "कतार" नहीं होगा।

यदि आपको इसका आश्वासन नहीं दिया जाता है, तो आप उन्हें 2 रूपों में विभाजित कर सकते हैं और इस तरह से काम कर सकते हैं।

0

फॉर्म को दो रूपों में विभाजित करें, अन्य क्रियाओं द्वारा आवश्यक किसी भी अन्य इनपुट को दोहराएं। या, यदि आपको वास्तव में यह जानने की ज़रूरत है कि क्या उपयोगकर्ता आइटम को "कतार बनाम सबमिट करना" चाहता है, तो दोनों विकल्पों के बीच टॉगल करने के लिए दोनों सबमिट बटनों को रेडियो चयन में बदलें, और एक नया, अलग "फॉर्म सबमिट करें" बटन है।

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

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

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