क्या <input> अच्छी तरह से बिना <फॉर्म> के बनता है?


225

क्या इसके <input>बिना होना वैध है <form>?

पृष्ठों में कुछ क्षेत्रों को चिह्नित करने के लिए एक प्रक्रिया है और सिर्फ इनपुट फ़ील्ड के साथ एक पृष्ठ मिला है जहाँ मुझे उम्मीद के मुताबिक चिह्नित नहीं किया जा रहा है।
यह मुझे थोड़ी देर लगा लेकिन काम किया है कि फार्म तत्वों को प्राप्त करने की प्रक्रिया तब खेतों को प्राप्त करने का कारण बनता है क्योंकि इनमें कोई चूक नहीं होती है क्योंकि कोई रूप नहीं है।


@ एड्रियानो - मेरा विचार बिल्कुल। बस इसे चलाने के माध्यम से और देखो!
गैब्रियल हर्ले

1
निश्चित रूप से w3c सत्यापनकर्ता , मुझे वास्तव में यह जोड़ना चाहिए था कि क्यों अच्छा होगा इसके पीछे एक स्पष्टीकरण।
ग्रेग डोमजान

मेरा यह भी मतलब है कि यह html के कुछ संस्करणों के लिए मान्य हो सकता है, लेकिन दूसरों के लिए नहीं, और उस मामले में, सत्यापनकर्ता मानकों का दुरुपयोग करने की तुलना में बहुत तेज है।
एड्रियानो वरोली पियाज़ा

जवाबों:


200

<input>बिना <form> वैध प्रतीत होता है , हाँ (html 4.01 के लिए कम से कम, 17.2.1 के अंत में देखें):

नियंत्रण बनाने के लिए उपयोग किए जाने वाले तत्व आमतौर पर एक FORM तत्व के अंदर दिखाई देते हैं, लेकिन उपयोगकर्ता इंटरफ़ेस बनाने के लिए उपयोग किए जाने पर FORM तत्व घोषणा के बाहर भी दिखाई दे सकते हैं। यह आंतरिक घटनाओं पर अनुभाग में चर्चा की गई है। ध्यान दें कि किसी प्रपत्र के बाहर नियंत्रण सफल नियंत्रण नहीं हो सकता है।


7
सर्वर (अजाक्स को एक तरफ) में फॉर्म डेटा जमा करने में सक्षम होना।
लुडोविक क्रूट

5
@PhilipSmith मुझे पता है कि आपकी टिप्पणी बहुत पहले लिखी गई थी। लेकिन आपको क्यों लगता है कि यह अजीब या व्यर्थ है? यदि कोई सर्वर से नियंत्रण संचार नहीं कर रहा है तो मैं एक फॉर्म क्यों बनाना चाहता हूं?
अदाम-बीक

18
"सफल नियंत्रण" क्या है?
एलिकएल्ज़िन-किलाका

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

3
@ adam-beck उदाहरण के लिए, एक निश्चित AngularJS वेबसाइट इनपुट संभालती है, डेटा में हेरफेर करती है, और इसे एक एपीआई को भेजती है। प्रपत्रों के लिए HTML टेम्प्लेट बिना किसी प्रपत्र टैग के लिखे जा सकते हैं और वे सर्वर से ठीक-ठीक संवाद करते हैं।
sr9yar


6

अधिक अप-टू-डेट विनिर्देश का संदर्भ:

HTML 5.2 - W3C अनुशंसा (14 दिसंबर 2017)

प्रपत्र-संबद्ध तत्व का किसी <form>तत्व के साथ संबंध हो सकता है , जिसे तत्व का रूप स्वामी कहा जाता है। यदि कोई प्रपत्र-संबद्ध तत्व किसी <form>तत्व से संबद्ध नहीं है , तो उसके प्रपत्र स्वामी को शून्य कहा जाता है।


4

एमडीएन के अनुसार यह संभव है:

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

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


2

मुझे पता है कि यह प्रश्न काफी पुराना है, हालांकि, मैंने कई जटिल डेटा प्रविष्टि पृष्ठों को बिना फॉर्म टैग के सफलतापूर्वक बनाया है। हालांकि इसे कई लोगों द्वारा "मानक" नहीं माना जाता है, लेकिन ए के बिना इनपुट का उपयोग करना अनुचित नहीं है <form>। मेरी परियोजनाएँ ऐसे उदाहरण थे जहाँ मुझे इस बात पर पूर्ण नियंत्रण की आवश्यकता थी कि पृष्ठ कैसे व्यवहार करता है और डिफ़ॉल्ट रूप व्यवहार किस तरह से हो रहा है। पृष्ठ और फ़ील्ड स्तर सत्यापन (जेएस का उपयोग करके) और अजाक्स कॉल के साथ डेटा "सबमिट" करने में सक्षम था ... वास्तव में, यह इन दिनों मेरा पसंदीदा तरीका है।

जेएस की बहुत आवश्यकता है, लेकिन यह मुश्किल नहीं है और आसानी से पुन: प्रयोज्य कोड के रूप में किया जाता है।

ऐसे अन्य उदाहरण भी हैं, जहाँ मैं लॉगिन पेज जैसे इनपुट के साथ फ़ॉर्म का उपयोग नहीं करता।

आशा है कि यह प्रशंसापत्र किसी की मदद करता है।


1

हां, आपके पास एक फॉर्म के बिना एक वैध इनपुट हो सकता है।


14
ठीक है, आप 'हां' के पीछे कुछ सबूत जोड़ सकते हैं। या HTML के कौन से संस्करण के लिए यह स्पष्ट है। फिर भी, मैंने आपको निराश नहीं किया होगा।
एड्रियानो वरोली पियाज़ा

9
तो अपने तर्क के साथ भी सभी पर SO क्यों है अगर उपयोगकर्ता सिर्फ W3 पर जा सकता है और इसे खुद देख सकता है? मैंने आपको या तो डाउनवोट नहीं किया होगा, लेकिन मुझे इस बात से सहमत होना होगा कि एक स्पष्ट और संक्षिप्त तरीके से अधिक स्पष्टीकरण के साथ, उत्थान हो जाता है, क्योंकि एक स्पष्टीकरण और साथ ही सही उत्तर वह है जो एसओ में सबसे अधिक सहायक है।
Mattygabe

-10

ज़रूर, उपयोग करें

document.getElementById('your_input_id').validity.valid

गतिशील रूप से क्षेत्र की वैधता की जांच करने के लिए।


31
यह मार्कअप वैधता के साथ कुछ नहीं करना है, इसके बजाय यह बाधा सत्यापन एपीआई के लिए है । इस उत्तर को 8 उत्थान कैसे मिले, यह मेरे से परे है।
user247702
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.