"रेडियो" इनपुट फ़ील्ड के साथ "आवश्यक" विशेषता का उपयोग कैसे करें


409

मैं बस सोच रहा हूं कि रेडियो बटन पर सही तरीके से "आवश्यक" नए एचटीएमएल 5 इनपुट विशेषता का उपयोग कैसे करें। क्या प्रत्येक रेडियो बटन फ़ील्ड को नीचे की तरह विशेषता की आवश्यकता होती है या क्या यह पर्याप्त है यदि केवल एक फ़ील्ड इसे प्राप्त करता है?

<input type="radio" name="color" value="black" required="required" />
<input type="radio" name="color" value="white" required="required" />

जवाबों:


691

TL; DR: requiredरेडियो समूह के कम से कम एक इनपुट के लिए विशेषता सेट करें ।


requiredसभी इनपुटों के लिए सेटिंग अधिक स्पष्ट है, लेकिन आवश्यक नहीं है (जब तक कि गतिशील रूप से रेडियो-बटन उत्पन्न न हो)।

रेडियो बटन को समूहीकृत करने के लिए इन सभी का nameमूल्य समान होना चाहिए । यह एक समय में केवल एक को चुनने की अनुमति देता है और requiredपूरे समूह पर लागू होता है।

<form>
  Select Gender:<br>

  <label>
    <input type="radio" name="gender" value="male" required>
    Male
  </label><br>

  <label>
    <input type="radio" name="gender" value="female">
    Female
  </label><br>

  <label>
    <input type="radio" name="gender" value="other">
    Other
  </label><br>

  <input type="submit">
</form>

इस पर भी ध्यान दें:

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

स्रोत


1
@kumar_harsh: आवश्यक के रूप में चिह्नित किसी भी चेकबॉक्स की जाँच की जानी चाहिए। इसी तरह, आवश्यक चेकबॉक्स को चिह्नित करने से किसी अन्य चेकबॉक्स (समान नाम या नहीं) पर कोई प्रभाव नहीं पड़ता है। "इन एक्स चेकबॉक्सों को समान नाम के साथ इंगित करने के लिए" इंगित करने के लिए कोई सरल मार्कअप नहीं है, कम से कम एक चेक किया जाना चाहिए।
ब्रैड केंट

3
@Davdriver हाँ, आप इसे सभी रेडियो बटन पर निर्दिष्ट कर सकते हैं, यदि आप चाहें। वास्तव में w3c ने लिखा: इस भ्रम से बचने के लिए कि एक रेडियो बटन समूह की आवश्यकता है या नहीं, लेखकों को एक समूह में सभी रेडियो बटन पर विशेषता निर्दिष्ट करने के लिए प्रोत्साहित किया जाता है। ( कोड के उदाहरण के तहत w3.org/TR/html5/forms.html#the-required-attribute देखें )
10

1
Sry, लेकिन इसके बाद बोलनी का एक समूह है: वास्तव में, सामान्य तौर पर, लेखकों को रेडियो बटन समूहों से बचने के लिए प्रोत्साहित किया जाता है, जिनके पास पहली बार में किसी भी प्रारंभिक नियंत्रण की जांच नहीं होती है, क्योंकि यह एक ऐसी स्थिति है जिसे उपयोगकर्ता वापस नहीं कर सकता है, और इसलिए आमतौर पर खराब यूजर इंटरफेस माना जाता है। क्यों? क्योंकि प्रारंभ में नियंत्रित नियंत्रण नहीं होना पूरी तरह से वैध (UX) मामला है।
पूसइन्बूट्स

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

1
@Seybsen नाह, "सामान्य रूप से" कवर करता है कि यह एक पूर्ण नहीं है। लेकिन ये मानक निकाय कभी भी इसका उदाहरण नहीं देते हैं कि यह वास्तव में उनकी सिफारिश का उपयोग करने के लिए एक खराब उपयोगकर्ता इंटरफ़ेस होगा, इसलिए मैं एक प्रदान करना चाहता था। वे इसे ध्वनि की तरह बनाते हैं यदि आप इसका उपयोग करते हैं, तो आपने अपने यूएक्स को सोचा नहीं है। मैं चाहता हूं कि अन्य डेवलपर्स को एक सूचित डिज़ाइन विकल्प बनाने के लिए आत्मविश्वास होना चाहिए - न कि हर रेडियो बटन को नेत्रहीन रूप से डिफ़ॉल्ट करना।
जोएल विगटन 15

4

आप इस कोड का उपयोग कर सकते हैं स्निपेट ...

<html>
  <body>
     <form>
          <input type="radio" name="color" value="black" required />
          <input type="radio" name="color" value="white" />
          <input type="submit" value="Submit" />
    </form>
  </body>
</html>

चुनिंदा कथनों में से एक में " आवश्यक " कीवर्ड निर्दिष्ट करें । यदि आप इसके स्वरूप का डिफ़ॉल्ट तरीका बदलना चाहते हैं। आप इन चरणों का पालन कर सकते हैं। यदि आप डिफ़ॉल्ट व्यवहार को संशोधित करने का कोई इरादा रखते हैं तो यह केवल अतिरिक्त जानकारी के लिए है।

निम्नलिखित को आप .cssफ़ाइल में जोड़ें ।

/* style all elements with a required attribute */
:required {
  background: red;
}

अधिक जानकारी के लिए आप निम्न URL का उल्लेख कर सकते हैं।

https://css-tricks.com/almanac/selectors/r/required/


3

यदि आपके रेडियो बटन को अनुकूलित किया गया है, उदाहरण के लिए रेडियो बटन के लिए मूल आइकन को सीएसएस के माध्यम से छिपाया गया है display:noneताकि आप अपना रेडियो बटन बना सकें तो आपको त्रुटि हो सकती है।

इसे ठीक करने का तरीका इसके display:noneसाथ बदलना हैopacity:0


मुझे लगता है कि आप का मतलब है कि ब्राउज़र की गड़बड़ी दिखाई नहीं दे रही है अगर रेडियो बटन स्वयं के माध्यम से छिपा हुआ है display:none
थॉट्स ने

1

यहां देशी HTML5 सत्यापन के साथ आवश्यक रेडियोबुटनों का एक बहुत ही बुनियादी लेकिन आधुनिक कार्यान्वयन है:

body {font-size: 15px; font-family: serif;}
input {
  background: transparent;
  border-radius: 0px;
  border: 1px solid black;
  padding: 5px;
  box-shadow: none!important;
  font-size: 15px; font-family: serif;
}
input[type="submit"] {padding: 5px 10px; margin-top: 5px;}
label {display: block; padding: 0 0 5px 0;}
form > div {margin-bottom: 1em; overflow: auto;}
.hidden {
  opacity: 0; 
  position: absolute; 
  pointer-events: none;
}
.checkboxes label {display: block; float: left;}
input[type="radio"] + span {
  display: block;
  border: 1px solid black;
  border-left: 0;
  padding: 5px 10px;
}
label:first-child input[type="radio"] + span {border-left: 1px solid black;}
input[type="radio"]:checked + span {background: silver;}
<form>

  <div>
    <label for="name">Name (optional)</label>
    <input id="name" type="text" name="name">
  </div>

  <label>Gender</label>
  <div class="checkboxes">
    <label><input id="male" type="radio" name="gender" value="male" class="hidden" required><span>Male</span></label>
    <label><input id="female" type="radio" name="gender" value="male" class="hidden" required><span>Female </span></label>
    <label><input id="other" type="radio" name="gender" value="other" class="hidden" required><span>Other</span></label>
  </div>

  <input type="submit" value="Send" />

</form>

यद्यपि मैं मूल एचटीएमएल 5 सत्यापन का उपयोग करने के न्यूनतर दृष्टिकोण का एक बड़ा प्रशंसक हूं, आप इसे लंबे समय तक जावास्क्रिप्ट सत्यापन के साथ बदलना चाह सकते हैं। जावास्क्रिप्ट सत्यापन आपको सत्यापन प्रक्रिया पर कहीं अधिक नियंत्रण देता है और यह आपको वास्तविक फ़ील्ड्स (छद्म कक्षाओं के बजाय) को मान्य फ़ील्ड की स्टाइलिंग में सुधार करने की अनुमति देता है। यह मूल HTML5 सत्यापन टूट (या कमी) जावास्क्रिप्ट के मामले में आपकी गिरावट वापस हो सकता है। आप इससे प्रेरित होकर, इससे बेहतर रूपों को बनाने के बारे में कुछ अन्य सुझावों के साथ यहां इसका एक उदाहरण पा सकते हैं एंड्रयू कोल


0

मुझे required="required"एक ही नाम के साथ उपयोग करना था और सत्यापन की तुलना में ठीक काम किया था।

input type="radio" name="userradio"  id="" value="User" required="required"

input type="radio" name="userradio" id="" value="Admin" 

input type="radio" name="userradio" id="" value="Guest" 

1
यह मदद करेगा यदि आपने अपना उत्तर प्रारूपित किया है और स्पष्टीकरण दिया है कि यह क्यों काम करता है।
जो लिसनर

1
w @JoeLissner सहमत हुए। कृपया दिए गए टूल का उपयोग करके अपने कोड को प्रारूपित करें।
साओ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.