forms क्या कार्रवाई वास्तव में रूपों पर आवश्यक है?




html5 html (3)

यहां यह कहता है कि यह आवश्यक है

http://www.w3schools.com/tags/att_form_action.asp

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


ऐसा लगता है कि HTML4 spec की आवश्यकता है । मुझे संदेह है कि कुछ ब्राउज़र ऐसा करते हैं जो आप "चीजों को आसान बनाना" चाहते हैं। हालांकि मैं इसे भरोसा करने की सिफारिश नहीं करता हूं। चूंकि आप अपरिभाषित व्यवहार में हैं, इसलिए कोई ब्राउज़र बिना किसी action सबमिट किए जाने पर कुछ भी करने का निर्णय ले सकता है।

कार्रवाई को रिक्त छोड़कर spec का पालन करते समय आप जो व्यवहार चाहते हैं उसे प्राप्त कर सकते हैं (क्योंकि यह सापेक्ष है, रिक्त वर्तमान पृष्ठ का मतलब है):

<form action="" ...>

जैसा कि बज़मेगापापा ने उल्लेख किया है, एचटीएमएल 5 spec को action विशेषता की आवश्यकता नहीं लगती है :

निर्दिष्ट होने पर क्रिया और स्वरूपण सामग्री विशेषताओं में एक मान होना चाहिए जो एक वैध गैर-खाली यूआरएल है जो संभावित रूप से रिक्त स्थान से घिरा हुआ है। [जोर जोड़ा गया]

दिलचस्प बात यह है कि इसका मतलब एचटीएमएल 5 में है, <form action=""> मान्य नहीं है, लेकिन यह स्पष्ट नहीं है कि काम करने के लिए कोई कार्रवाई आवश्यक है (वर्तमान पृष्ठ पर सबमिट करें)।


आवश्यकता केवल मानकों के द्वारा है । जो कुछ भी आप चाहते हैं वह करना पूरी तरह संभव है और मानकों का पालन न करें। यदि आप ऐसा करते हैं तो चीजें सही तरीके से प्रदर्शित या काम नहीं कर सकती हैं, लेकिन संभवतः वे करेंगे। लक्ष्य उनका पालन करना है, और विचार यह है कि यदि आप उनका पालन करते हैं, तो आपका पृष्ठ हमेशा काम करेगा; आपको किसी चीज़ के बारे में चिंता करने की ज़रूरत नहीं है।

हां, फॉर्म HTML4 में एक्शन विशेषता होने की आवश्यकता है। यदि यह सेट नहीं है, तो ब्राउज़र संभवतः उसी विधि का उपयोग करेगा जैसे कि इसे खाली स्ट्रिंग प्रदान करना। आपको वास्तव में action="" सेट करना चाहिए जो पूरी तरह से वैध HTML4 है, मानकों का पालन करता है, और एक ही सटीक परिणाम प्राप्त करता है।

एचटीएमएल 5 में, आप वास्तव में सबमिट बटन पर एक क्रिया निर्दिष्ट कर सकते हैं। यदि कोई नहीं है, तो यह फ़ॉर्म की क्रिया का उपयोग करता है और यदि यह सेट नहीं है, तो यह खाली स्ट्रिंग पर डिफ़ॉल्ट होता है (ध्यान दें कि आप एचटीएमएल 5 में रिक्त स्ट्रिंग पर कार्रवाई को स्पष्ट रूप से सेट नहीं कर सकते हैं)।


तकनीकी रूप से यह एचटीएमएल 4 spec का उल्लंघन है, लेकिन यदि कोई कार्रवाई निर्दिष्ट नहीं की जाती है तो सभी ब्राउज़र प्रतिक्रिया के उत्प्रेरक को वापस पोस्ट करेंगे। मैं सहमत हूं कि इस पर भरोसा करना एक स्मार्ट विचार नहीं है लेकिन यह काम करता है।

संपादित करें: जैसा कि मुझे बताया गया है कि इस प्रश्न को एचटीएमएल 5 के रूप में टैग किया गया है: एचटीएमएल 5 में वे अब एक्शन एट्रिब्यूट सूचीबद्ध करते हैं: w3schools.com/html5/att_form_action.asp जो में है एचटीएमएल 5 चश्मा के अनुसार।





html-validation