HTML5 అడ్వాన్స్‌డ్ ఫారమ్ కంట్రోల్స్: select, datalist, textarea, Checkbox & Radio

🌐 Modern HTML5 (W3C/WHATWG) 🟢 Chapter 15 of 20 📂 Phase 04: ఫారమ్స్, ఇన్‌పుట్స్ & క్లయింట్-సైడ్ వాలిడేషన్ 📅 2026 Edition
📌 Covered in this chapter: రేడియో బటన్స్ & గ్రూపింగ్ · మల్టీ-సెలెక్ట్ చెక్‌బాక్సెస్ · <select> డ్రాప్‌డౌన్లు & <optgroup> · గూగుల్ తరహా సెర్చ్ <datalist> · మల్టీ-లైన్ <textarea> & resize నియంత్రణ · UX ఎంపిక గైడ్ · బిగినర్స్ తప్పులు & క్విజ్

నిత్యజీవితంలో మీరు స్విగ్గీ లేదా జొమాటోలో పిజ్జా ఆర్డర్ చేసే దృశ్యాన్ని ఊహించుకోండి: 1) మీరు వెజ్ లేదా నాన్-వెజ్ రెండింటిలో ఏదో ఒకటి మాత్రమే ఎంచుకోవాలి (Exclusive Single Choice) — దీని కోసం రేడియో బటన్స్ (Radio buttons) ఉంటాయి. 2) పిజ్జా పైన ఎక్స్‌ట్రా చీజ్, మష్రూమ్స్, లేదా ఆలివ్స్ లాంటి ఎన్ని టాపింగ్స్ అయినా ఒకేసారి ఎంచుకోవచ్చు (Multiple Choices) — దీని కోసం చెక్‌బాక్స్‌లు (Checkboxes) ఉంటాయి. 3) భారతదేశంలోని 28 రాష్ట్రాల లిస్ట్ నుండి మీ రాష్ట్రాన్ని ఎంచుకోవడానికి స్క్రీన్ స్థలాన్ని ఆదా చేసే కాంపాక్ట్ డ్రాప్‌డౌన్ లిస్ట్ (<select>) ఉంటుంది. 4) గూగుల్ సెర్చ్ లాగా మీరు రెండు అక్షరాలు టైప్ చేయగానే కింద సలహాలు (Auto-suggestions) ఇస్తూనే, కావాలంటే కొత్త పదం టైప్ చేసుకునే వెసులుబాటు ఉండే హైబ్రిడ్ కంట్రోల్ <datalist>. 5) మీ ఇంటి అడ్రస్ లేదా స్పెషల్ డెలివరీ సూచనలు రాయడానికి పెద్ద టెక్స్ట్ ఏరియా (<textarea>) ఉంటుంది.

ఈ ఐదు ఆధునిక ఫారమ్ కంట్రోల్స్ ఒక వెబ్‌సైట్‌ను సాధారణ పేజీ నుండి అత్యంత శక్తివంతమైన, యూజర్-ఫ్రెండ్లీ ఇంటరాక్టివ్ అప్లికేషన్‌గా మారుస్తాయి. ఈ పదిహేనవ అధ్యాయంలో వీటి సమగ్ర అనాటమీ, UX నియమాలు మరియు కోడింగ్ టెక్నిక్స్ నేర్చుకుందాం!

1ఈ Chapter లో మీరు నేర్చుకునే అంశాలు
  • రేడియో బటన్స్ (Radio Buttons): ఇచ్చిన ఆప్షన్లలో కేవలం ఒక్కదానిని మాత్రమే ఎంచుకునే సూత్రం మరియు name ఆట్రిబ్యూట్ మ్యాజిక్.
  • చెక్‌బాక్స్‌లు (Checkboxes): స్వతంత్ర ఎంపికలు మరియు బహుళ విలువలను సర్వర్‌కు పంపే విధానం.
  • <select> & <option>: స్థలాన్ని ఆదా చేసే డ్రాప్‌డౌన్ మెనూలు, selected, మరియు multiple ఎంపికలు.
  • <optgroup> ఎలిమెంట్: వందలాది ఆప్షన్లను స్పష్టమైన కేటగిరీలుగా గ్రూప్ చేసే పద్ధతి.
  • ఆధునిక <datalist> ఎలిమెంట్: టెక్స్ట్‌బాక్స్ మరియు డ్రాప్‌డౌన్ కలిసిన హైబ్రిడ్ ఆటో-కంప్లీట్ సెర్చ్.
  • <textarea> ఎలిమెంట్: మల్టీ-లైన్ టెక్స్ట్, rows, cols, మరియు CSS resize నియంత్రణ.
  • UX ఎంపిక పోలిక పట్టిక: రేడియో, చెక్‌బాక్స్, సెలెక్ట్ లలో ఏ సందర్భంలో ఏది వాడాలో నిర్ణయించే సూత్రాలు.
  • Accessibility & కీబోర్డ్ నావిగేషన్: మౌస్ లేకుండా స్పేస్‌బార్ మరియు యారో కీలతో ఫారమ్‌ను నియంత్రించడం.
2రేడియో బటన్స్ (type="radio"): ఒకే ఒక్క ఎంపిక

యూజర్‌కు ఇచ్చిన బహుళ ఆప్షన్లలో నుండి ఖచ్చితంగా ఏదో ఒకే ఒక్క ఆప్షన్‌ను మాత్రమే (Mutually Exclusive Single Choice) ఎంచుకునే సందర్భాలలో రేడియో బటన్లను ఉపయోగిస్తాం. ఉదాహరణకు: లింగం (Gender), పేమెంట్ విధానం (UPI, Card, COD), లేదా క్విజ్ ప్రశ్న సమాధానం.

⚠️
గోల్డెన్ రూల్ — అన్ని రేడియో బటన్లకూ ఒకే 'name' ఉండాలి!
ఒక సమూహానికి చెందిన అన్ని రేడియో బటన్లకూ ఒకే name ఆట్రిబ్యూట్ ఇస్తేనే బ్రౌజర్ వాటిని ఒక టీమ్‌గా గుర్తిస్తుంది. అప్పుడే ఒక బటన్ నొక్కినప్పుడు పాత బటన్ ఆటోమేటిక్‌గా అన్-సెలెక్ట్ అవుతుంది! మీరు వేర్వేరు పేర్లు ఇస్తే యూజర్ అన్ని బటన్లనూ సెలెక్ట్ చేయగలుగుతాడు (ఇది తీవ్రమైన బగ్).
HTML — రేడియో బటన్స్ సమూహం
<fieldset style="border: 1px solid #cbd5e1; border-radius: 8px; padding: 16px; max-width: 400px;">
  <legend style="color: #059669; font-weight: bold;">పేమెంట్ విధానాన్ని ఎంచుకోండి</legend>

  <!-- అన్నింటికీ name="payment_method" సమానంగా ఉంది -->
  <p>
    <input type="radio" id="pay-upi" name="payment_method" value="upi" checked>
    <label for="pay-upi">Google Pay / PhonePe (UPI)</label>
  </p>

  <p>
    <input type="radio" id="pay-card" name="payment_method" value="credit_card">
    <label for="pay-card">డెబిట్ / క్రెడిట్ కార్డు</label>
  </p>

  <p>
    <input type="radio" id="pay-cod" name="payment_method" value="cash_on_delivery">
    <label for="pay-cod">క్యాష్ ఆన్ డెలివరీ (COD)</label>
  </p>
</fieldset>

💡 checked ఆట్రిబ్యూట్ ఇవ్వడం వల్ల పేజీ లోడ్ అయినప్పుడే ఆ ఆప్షన్ ముందే టిక్ అయి ఉంటుంది.

3చెక్‌బాక్స్‌లు (type="checkbox"): బహుళ ఎంపికలు

యూజర్ ఒకేసారి సున్నా, ఒకటి, లేదా అంతకంటే ఎక్కువ ఆప్షన్లను (Zero or Multiple Choices) స్వేచ్ఛగా ఎంచుకోవడానికి చెక్‌బాక్స్‌లను ఉపయోగిస్తాం. ఉదాహరణకు: మీకు తెలిసిన ప్రోగ్రామింగ్ భాషలు, అలవాట్లు, లేదా నిబంధనలు అంగీకరించడం.

HTML — బహుళ చెక్‌బాక్స్‌లు మరియు ఏకైక అగ్రిమెంట్
<fieldset style="border: 1px solid #cbd5e1; border-radius: 8px; padding: 16px; max-width: 450px;">
  <legend style="color: #059669; font-weight: bold;">మీకు తెలిసిన భాషలను ఎంచుకోండి</legend>

  <p>
    <input type="checkbox" id="lang-html" name="skills" value="html5" checked>
    <label for="lang-html">HTML5 & CSS3</label>
  </p>

  <p>
    <input type="checkbox" id="lang-js" name="skills" value="javascript" checked>
    <label for="lang-js">JavaScript ES6+</label>
  </p>

  <p>
    <input type="checkbox" id="lang-py" name="skills" value="python">
    <label for="lang-py">Python 3</label>
  </p>

  <hr style="border: none; border-top: 1px solid #e2e8f0; margin: 12px 0;">

  <!-- ఒంటరి నిబంధనల చెక్‌బాక్స్ -->
  <p>
    <input type="checkbox" id="terms" name="agree_terms" required>
    <label for="terms"><strong>నేను సైట్ నిబంధనలను అంగీకరిస్తున్నాను</strong></label>
  </p>
</fieldset>
💡
సర్వర్‌కు డేటా ఎలా వెళ్తుంది?
యూజర్ ఏ చెక్‌బాక్స్‌లను టిక్ చేస్తాడో — కేవలం ఆ చెక్‌బాక్స్‌ల యొక్క name=value మాత్రమే సర్వర్‌కు చేరుతుంది. టిక్ చేయని చెక్‌బాక్స్‌లను బ్రౌజర్ పూర్తిగా విస్మరిస్తుంది.
4డ్రాప్‌డౌన్ మెనూలు: <select> మరియు <option>

మీ వద్ద 10 కంటే ఎక్కువ ఆప్షన్లు ఉన్నప్పుడు (ఉదాహరణకు: దేశాల లిస్ట్, రాష్ట్రాలు, నగరాలు), రేడియో బటన్లు పెడితే పేజీ మొత్తం నిండిపోయి యూజర్‌కు స్క్రోలింగ్ చికాకు వస్తుంది. అలాంటి సమయంలో స్క్రీన్ స్థలాన్ని అద్భుతంగా ఆదా చేయడానికి <select> డ్రాప్‌డౌన్ మెనూను ఉపయోగిస్తాం:

HTML — ప్రామాణిక <select> డ్రాప్‌డౌన్
<label for="state-select">మీ నివాస రాష్ట్రాన్ని ఎంచుకోండి:</label><br>
<select id="state-select" name="state" required style="width: 100%; max-width: 350px; padding: 8px; margin-top: 6px; border-radius: 6px; border: 1px solid #cbd5e1;">
  <!-- ఖాళీ డిఫాల్ట్ ప్రాంప్ట్ ఆప్షన్ -->
  <option value="" disabled selected>-- రాష్ట్రాన్ని ఎంచుకోండి --</option>
  <option value="TG">తెలంగాణ (Telangana)</option>
  <option value="AP">ఆంధ్రప్రదేశ్ (Andhra Pradesh)</option>
  <option value="KA">కర్ణాటక (Karnataka)</option>
  <option value="TN">తమిళనాడు (Tamil Nadu)</option>
</select>

కీలకమైన ఆట్రిబ్యూట్లు:

  • selected: పేజీ ఓపెన్ కాగానే డిఫాల్ట్‌గా ఏ ఆప్షన్ సెలెక్ట్ అయి ఉండాలో నిర్దేశిస్తుంది.
  • multiple: <select multiple> అని ఇస్తే డ్రాప్‌డౌన్ ఒక లిస్ట్ బాక్స్‌గా మారి, యూజర్ Ctrl/Cmd పట్టుకుని బహుళ ఆప్షన్లను సెలెక్ట్ చేసుకోగలడు.
5కేటగిరీల గ్రూపింగ్: <optgroup> ఎలిమెంట్

ఒక పెద్ద డ్రాప్‌డౌన్‌లో 50 కి పైగా ఆప్షన్లు ఉన్నప్పుడు యూజర్ తనకు కావాల్సిన దాన్ని వెతుక్కోవడం కష్టమవుతుంది. సంబంధిత ఆప్షన్లను స్పష్టమైన కేటగిరీలుగా వర్గీకరించడానికి <optgroup label="..."> ట్యాగ్‌ను ఉపయోగిస్తాం:

HTML — <optgroup> తో గ్రూప్ చేయబడిన కోర్సులు
<label for="course-select">మీరు నేర్చుకోవాలనుకుంటున్న కోర్సు:</label><br>
<select id="course-select" name="selected_course" style="width: 100%; max-width: 350px; padding: 8px; margin-top: 6px;">
  <!-- గ్రూప్ 1: ఫ్రంటెండ్ -->
  <optgroup label="🌐 ఫ్రంటెండ్ టెక్నాలజీస్">
    <option value="html5">HTML5 & CSS3 మాస్టర్‌క్లాస్</option>
    <option value="javascript">ఆధునిక జావాస్క్రిప్ట్ (ES2026)</option>
    <option value="react">React.js ఫ్రేమ్‌వర్క్</option>
  </optgroup>

  <!-- గ్రూప్ 2: బ్యాకెండ్ -->
  <optgroup label="⚙️ బ్యాకెండ్ & సిస్టమ్స్">
    <option value="python">పైథాన్ 3 ప్రోగ్రామింగ్</option>
    <option value="java">జావా ఎంటర్‌ప్రైజ్</option>
    <option value="cpp">సి++ సిస్టమ్స్ కోడింగ్</option>
  </optgroup>
</select>

💡 <optgroup> లేబుల్ బోల్డ్ అక్షరాలలో కనిపిస్తుంది కానీ దానిని యూజర్ క్లిక్ చేయలేరు; కేవలం లోపల ఉన్న <option> లను మాత్రమే ఎంచుకోగలరు.

6ఆధునిక ఆటో-కంప్లీట్ మ్యాజిక్: <datalist> ఎలిమెంట్

ఇది HTML5 లో వచ్చిన అత్యంత ఆధునిక మరియు శక్తివంతమైన ఫీచర్! గూగుల్ సెర్చ్ బార్‌లో మీరు రెండు అక్షరాలు టైప్ చేయగానే క్రింద సలహాలు (Search Suggestions) వస్తాయి కదా? సరిగ్గా అదే అనుభవాన్ని జీరో జావాస్క్రిప్ట్ తో <datalist> అందిస్తుంది.

<select> మరియు <datalist> మధ్య విప్లవాత్మక తేడా:

  • <select>: యూజర్ కేవలం లిస్ట్‌లో ఉన్న ఆప్షన్లను మాత్రమే ఎంచుకోవాలి; కొత్త పదం టైప్ చేయలేరు.
  • <datalist>: యూజర్‌కు లిస్ట్ సలహాలు కనిపిస్తాయి, ఒకవేళ లిస్ట్‌లో లేకపోతే యూజర్ తన స్వంత కొత్త పదాన్ని కూడా స్వేచ్ఛగా టైప్ చేసుకోవచ్చు!
HTML — <datalist> ఆటో-కంప్లీట్ సెర్చ్
<!-- 1. సాధారణ ఇన్‌పుట్‌కు list="id" జతచేయాలి -->
<label for="browser-choice">మీకు ఇష్టమైన బ్రౌజర్ ఎంచుకోండి (లేదా టైప్ చేయండి):</label><br>
<input type="text" id="browser-choice" name="browser" list="browser-list" placeholder="టైప్ చేయండి..." style="width:100%; max-width:350px; padding:8px; margin-top:6px;">

<!-- 2. ప్రివ్యూ సలహాల డాటాలిస్ట్ -->
<datalist id="browser-list">
  <option value="Google Chrome">
  <option value="Mozilla Firefox">
  <option value="Apple Safari">
  <option value="Microsoft Edge">
  <option value="Brave Browser">
</datalist>
7మల్టీ-లైన్ టెక్స్ట్ ఎడిటర్: <textarea> ఎలిమెంట్

ఒక సాధారణ <input type="text"> కేవలం ఒకే ఒక్క లైన్ టెక్స్ట్‌ను మాత్రమే తీసుకోగలదు. యూజర్ నుండి పెద్ద పేరాగ్రాఫ్‌లు, ఇంటి అడ్రస్, లేదా కస్టమర్ ఫీడ్‌బ్యాక్ సేకరించడానికి <textarea> ఎలిమెంట్‌ను ఉపయోగిస్తాం.

⚠️
బిగినర్స్ జాగ్రత్త — ఇది Void Element కాదు!
<textarea> కు తప్పనిసరిగా ముగింపు ట్యాగ్ </textarea> ఉండాలి. అంతేకాకుండా ఓపెనింగ్ మరియు క్లోజింగ్ ట్యాగ్‌ల మధ్య ఎటువంటి స్పేస్‌లు లేదా లైన్ బ్రేకులు ఇవ్వకూడదు; అలా ఇస్తే ఆ స్పేస్‌లు బాక్స్ లోపల ముందే టైప్ చేసినట్లుగా ప్రత్యక్షమవుతాయి!
HTML — <textarea> మరియు CSS రీసైజ్ కంట్రోల్
<label for="feedback">మీ వివరణాత్మక అభిప్రాయం (Feedback):</label><br>
<textarea id="feedback" name="user_feedback" 
          rows="5" cols="40" 
          maxlength="500" 
          placeholder="గరిష్టంగా 500 అక్షరాలలో మీ సూచనలు తెలపండి..." 
          style="width: 100%; max-width: 500px; padding: 10px; border-radius: 8px; border: 1px solid #cbd5e1; resize: vertical;"></textarea>

💡 CSS లో resize: vertical; అని రాయడం వల్ల యూజర్ బాక్స్‌ను కేవలం పైకి క్రిందికి మాత్రమే సాగదీయగలడు; పక్కలకు సాగదీసి పేజీ లేఅవుట్‌ను పాడుచేయకుండా ఆపవచ్చు!

8UX ఎంపిక గైడ్: రేడియో vs చెక్‌బాక్స్ vs సెలెక్ట్

ఏ సందర్భంలో ఏ ఫారమ్ కంట్రోల్‌ను ఎంచుకోవాలో ప్రొఫెషనల్ UI/UX డిజైన్ సూత్రాల పట్టిక:

ఎంపికల సంఖ్య & స్వభావం సిఫార్సు చేయబడిన కంట్రోల్ కారణం & యూజర్ ప్రయోజనం
2 నుండి 5 ఆప్షన్లు (ఒకే ఎంపిక) రేడియో బటన్స్ (Radio) అన్ని ఆప్షన్లు కళ్ళముందే స్పష్టంగా కనిపిస్తాయి. ఒక్క క్లిక్‌తో ఎంచుకోవచ్చు.
బహుళ ఎంపికలు (0 నుండి ఎన్ని అయినా) చెక్‌బాక్స్‌లు (Checkbox) యూజర్ తనకిష్టమైన కాంబినేషన్‌ను స్వేచ్ఛగా టిక్ చేసుకోగలడు.
6 కంటే ఎక్కువ ఆప్షన్లు (ఒకే ఎంపిక) డ్రాప్‌డౌన్ (<select>) స్క్రీన్ నిండిపోకుండా కాంపాక్ట్‌గా స్థలాన్ని ఆదా చేస్తుంది.
సలహాలతో కూడిన స్వేచ్ఛాయుత ఎంపిక ఆటోకంప్లీట్ (<datalist>) యూజర్ వేగంగా టైప్ చేయగలడు, అవసరమైతే కొత్తది రాయగలడు.
పెద్ద పేరాగ్రాఫ్‌లు / అడ్రస్ మల్టీ-లైన్ (<textarea>) ఎంటర్‌లు, లైన్ బ్రేకులు రాయడానికి పుష్కలంగా స్థలం ఉంటుంది.
9Accessibility & కీబోర్డ్ నావిగేషన్ (a11y)

మౌస్ వాడలేని దివ్యాంగులు లేదా వేగంగా డేటా ఎంట్రీ చేసే ప్రొఫెషనల్స్ కీబోర్డ్ ద్వారా ఈ కంట్రోల్స్‌ను ఎలా ఆపరేట్ చేస్తారో మీరు తప్పక తెలుసుకోవాలి:

  • Tab కీ: ఒక ఫారమ్ ఫీల్డ్ నుండి తర్వాతి ఫీల్డ్‌కు వెళ్ళడానికి.
  • Spacebar (స్పేస్‌బార్): చెక్‌బాక్స్‌ను టిక్ / అన్-టిక్ చేయడానికి.
  • Arrow Keys (పైకి/క్రిందికి బాణాలు): రేడియో బటన్లు మరియు <select> డ్రాప్‌డౌన్‌లలో ఆప్షన్లను మార్చడానికి.
  • Enter కీ: ఫారమ్‌ను సబ్మిట్ చేయడానికి లేదా డ్రాప్‌డౌన్ మెనూను ఓపెన్ చేయడానికి.
10రియల్-వరల్డ్ ఈ-కామర్స్ ఆర్డర్ ఫారమ్ ఆర్కిటెక్చర్

మనం ఇప్పటివరకు నేర్చుకున్న radio, checkbox, select, datalist, మరియు textarea లు అన్నీ కలిసి ఒక పూర్తి స్థాయి ఈ-కామర్స్ ఫారమ్‌లో ఎలా పనిచేస్తాయో చూడండి:

HTML — ఆల్-ఇన్-వన్ ఆధునిక ఆర్డర్ ఫారమ్
<form action="/order" method="POST" style="max-width: 500px; padding: 24px; border: 1px solid #cbd5e1; border-radius: 12px; background: #ffffff; box-shadow: 0 4px 12px rgba(0,0,0,0.05);">
  <h2 style="margin-top:0; color:#0f172a;">🛒 సూపర్ పిజ్జా ఆర్డర్ ఫారమ్</h2>

  <!-- 1. డ్రాప్‌డౌన్: సైజు -->
  <p>
    <label for="p-size"><strong>పిజ్జా సైజు:</strong></label><br>
    <select id="p-size" name="pizza_size" style="width:100%; padding:8px; margin-top:4px;">
      <option value="reg">రెగ్యులర్ (7 అంగుళాలు)</option>
      <option value="med" selected>మీడియం (10 అంగుళాలు)</option>
      <option value="lar">లార్జ్ (12 అంగుళాలు)</option>
    </select>
  </p>

  <!-- 2. రేడియో: క్రస్ట్ టైప్ -->
  <p>
    <strong>క్రస్ట్ రకం:</strong><br>
    <label><input type="radio" name="crust" value="pan" checked> పాన్ పిజ్జా</label> &nbsp;
    <label><input type="radio" name="crust" value="thin"> థిన్ క్రస్ట్</label> &nbsp;
    <label><input type="radio" name="crust" value="cheese"> చీజ్ బర్స్ట్</label>
  </p>

  <!-- 3. చెక్‌బాక్స్: ఎక్స్‌ట్రా టాపింగ్స్ -->
  <p>
    <strong>ఎక్స్‌ట్రా టాపింగ్స్:</strong><br>
    <label><input type="checkbox" name="toppings" value="cheese"> ఎక్స్‌ట్రా చీజ్ (+₹50)</label><br>
    <label><input type="checkbox" name="toppings" value="olives"> బ్లాక్ ఆలివ్స్ (+₹30)</label>
  </p>

  <!-- 4. డాటాలిస్ట్: డెలివరీ ఏరియా -->
  <p>
    <label for="area"><strong>డెలివరీ లొకేషన్ (టైప్ చేయండి):</strong></label><br>
    <input type="text" id="area" name="delivery_area" list="area-options" placeholder="హైటెక్ సిటీ, మాదాపూర్..." style="width:100%; padding:8px; margin-top:4px;">
    <datalist id="area-options">
      <option value="హైటెక్ సిటీ, హైదరాబాద్">
      <option value="మాదాపూర్, హైదరాబాద్">
      <option value="గచ్చిబౌలి, హైదరాబాద్">
      <option value="కూకట్‌పల్లి, హైదరాబాద్">
    </datalist>
  </p>

  <!-- 5. టెక్స్ట్ ఏరియా: అడ్రస్ -->
  <p>
    <label for="addr"><strong>పూర్తి ఇంటి చిరునామా:</strong></label><br>
    <textarea id="addr" name="delivery_address" rows="3" style="width:100%; padding:8px; margin-top:4px;" placeholder="ఫ్లాట్ నం, అపార్ట్‌మెంట్, ల్యాండ్‌మార్క్..."></textarea>
  </p>

  <button type="submit" style="background:#10b981; color:white; border:none; padding:12px 24px; border-radius:8px; font-weight:bold; font-size:15px; cursor:pointer; width:100%;">
    🍕 ఆర్డర్ కన్ఫర్మ్ చేయండి
  </button>
</form>
11బిగినర్స్ చేసే టాప్ 5 పొరపాట్లు & పరిష్కారాలు
1. తప్పు: ఒకే గ్రూప్ రేడియో బటన్లకు వేర్వేరు name లు ఇవ్వడం

రేడియో బటన్లకు వేర్వేరు పేర్లు ఇస్తే అవి గ్రూప్ అవ్వవు; యూజర్ అన్ని బటన్లనూ సెలెక్ట్ చేయగలుగుతాడు. ఒక సమూహానికి చెందిన అన్ని రేడియో బటన్లకూ ఖచ్చితంగా ఒకే పేరు ఉండాలి.

2. తప్పు: <option> ట్యాగ్‌కు value ఆట్రిబ్యూట్ ఇవ్వకపోవడం

<option value="TG">తెలంగాణ</option> అని ఇవ్వాలి. value లేకపోతే లోపల ఉన్న పెద్ద టెక్స్ట్ మొత్తం సర్వర్‌కు వెళ్ళిపోతుంది.

3. తప్పు: <textarea> ట్యాగ్‌ల మధ్య అనవసరమైన స్పేస్‌లు వదిలేయడం

<textarea> </textarea> అని రాస్తే ఆ ఖాళీ స్పేస్‌లు బాక్స్ లోపల ముందే టైప్ చేసినట్లుగా యూజర్‌కు కనిపిస్తాయి. ఎల్లప్పుడూ <textarea></textarea> మధ్యలో ఏమీ లేకుండా రాయాలి.

4. తప్పు: <input> మరియు <datalist> లింకింగ్ సరిపోకపోవడం

ఇన్‌పుట్ లోని list="my-list" మరియు డాటాలిస్ట్ లోని id="my-list" ఖచ్చితంగా సమానంగా ఉండాలి. స్పెల్లింగ్ తేడా ఉంటే ఆటోకంప్లీట్ పనిచేయదు.

5. తప్పు: చెక్‌బాక్స్ కి value ఇవ్వకపోవడం

చెక్‌బాక్స్‌కు value ఇవ్వకపోతే సర్వర్‌కు డిఫాల్ట్‌గా name="on" అని మాత్రమే వెళ్తుంది. ఏ ఆప్షన్ టిక్ అయిందో తెలియాలంటే value="agree" లేదా value="hindi" లాంటి నిర్దిష్ట విలువలు ఇవ్వాలి.

12ఇంటరాక్టివ్ సెల్ఫ్-టెస్ట్ క్విజ్ (Interactive Quiz)

ఈ అధ్యాయంలో మీరు నేర్చుకున్న విషయాలను స్వయంగా పరీక్షించుకోండి. ప్రతి ప్రశ్నను చదివి సమాధానం ఆలోచించిన తర్వాత "సమాధానం చూడండి" పై క్లిక్ చేయండి:

❓ ప్రశ్న 1: రేడియో బటన్లు పరస్పరం మ్యూచువల్లీ ఎక్స్‌క్లూజివ్ (ఒకటి నొక్కితే ఇంకోటి అన్-సెలెక్ట్) కావాలంటే ఏ నియమం పాటించాలి?
సమాధానం: ఆ గ్రూప్‌లోని అన్ని రేడియో బటన్లకూ ఒకే name ఆట్రిబ్యూట్ విలువను ఇవ్వాలి.
❓ ప్రశ్న 2: <select> మరియు <datalist> మధ్య ప్రధాన తేడా ఏమిటి?
సమాధానం: <select> లో కేవలం ముందుగా నిర్ణయించిన ఆప్షన్లను మాత్రమే ఎంచుకోవాలి. <datalist> లో సలహాలు కనిపిస్తాయి, అవసరమైతే యూజర్ తన స్వంత కొత్త విలువను కూడా స్వేచ్ఛగా టైప్ చేసుకోవచ్చు.
❓ ప్రశ్న 3: డ్రాప్‌డౌన్‌లోని ఆప్షన్లను వర్గాలుగా (Categories) విభజించడానికి ఏ ట్యాగ్ వాడతారు?
సమాధానం: <optgroup label="కేటగిరీ పేరు">.
❓ ప్రశ్న 4: <textarea> ని యూజర్ కేవలం నిలువుగా మాత్రమే సాగదీసేలా (Vertical resize) ఎలా నియంత్రించాలి?
సమాధానం: CSS లో resize: vertical; అని రాయడం ద్వారా.
❓ ప్రశ్న 5: చెక్‌బాక్స్ మరియు రేడియో బటన్ డిఫాల్ట్‌గా టిక్ అయి ఉండటానికి ఏ ఆట్రిబ్యూట్ వాడతారు?
సమాధానం: checked ఆట్రిబ్యూట్ (డ్రాప్‌డౌన్ లో అయితే selected).
13మీరే స్వయంగా Try చేయండి & సారాంశం (Quick Summary)
🚀 ఆధునిక ఫారమ్ కంట్రోల్స్‌ను మన HTML Editor లో లైవ్‌గా రన్ చేయండి

పైన వివరించిన పిజ్జా ఆర్డర్ ఫారమ్ కోడ్‌ను మన ఆన్‌లైన్ ఎడిటర్‌లో ఓపెన్ చేసి, డ్రాప్‌డౌన్లు, రేడియో బటన్లు, చెక్‌బాక్స్‌లు మరియు డాటాలిస్ట్‌లను మీరే స్వయంగా క్లిక్ చేసి అనుభవించండి!

👉 Our Compiler లో HTML Editor try చేయండి

📌 క్విక్ సారాంశం (Key Takeaways):

  • రేడియో: ఒకే ఎంపికకు వాడాలి; గ్రూప్ కావడానికి సమానమైన name తప్పనిసరి.
  • చెక్‌బాక్స్: బహుళ స్వతంత్ర ఎంపికల కోసం.
  • <select>: స్థలాన్ని ఆదా చేసే డ్రాప్‌డౌన్; కేటగిరీల కోసం <optgroup>.
  • <datalist>: టెక్స్ట్‌బాక్స్‌కు ఇన్-లైన్ సెర్చ్ సజెషన్స్ ఇచ్చే ఆధునిక హైబ్రిడ్ కంట్రోల్.
  • <textarea>: పెద్ద పేరాగ్రాఫ్‌ల కోసం; తప్పనిసరిగా క్లోజింగ్ ట్యాగ్ ఉండాలి.
తర్వాతి అధ్యాయంలో (Chapter 16 - Phase 04 ఫినాలే): మనం ఫారమ్స్‌లో అత్యంత కీలకమైన క్లయింట్-సైడ్ HTML5 ఆటో-వాలిడేషన్ (required, pattern Regex, min, max, step) & కస్టమ్ ఎర్రర్ మెసేజ్‌లు గురించి లోతుగా నేర్చుకుందాం!
← Prev: 14. మోడరన్ ఇన్‌పుట్ టైప్స్ Next: 16. క్లయింట్-సైడ్ ఫారమ్ వాలిడేషన్ →
OC
Written by Our Compiler Technical Editorial Team
Reviewed for accuracy & tested across modern Web Standards / W3C & WHATWG · 2026 Academic Edition