Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> HTML

HTML novalidate एट्रिब्यूट: फॉर्म वैलिडेशन बायपास करें


HTML novalidate एट्रिब्यूट एक बूलियन एट्रिब्यूट है जो <form> एलिमेंट पर लगाया जाता है। जब यह मौजूद होता है, तो फॉर्म सबमिट करते समय ब्राउज़र की अंतर्निहित HTML5 वैलिडेशन (required, pattern, type, min/max, आदि) छोड़ दी जाती है। यह कस्टम वैलिडेशन लॉजिक लागू करने या सर्वर-साइड वैलिडेशन पर भरोसा करने के लिए उपयोगी है।

सिंटैक्स (Syntax)

<form novalidate></form>

या JavaScript के माध्यम से:

formElement.setAttribute('novalidate', 'true');
formElement.noValidate = true;

उदाहरण (Example)

यह उदाहरण दर्शाता है कि कैसे novalidate एट्रिब्यूट फॉर्म वैलिडेशन को अक्षम करता है।

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      color: #000;
      height: 100vh;
      background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) no-repeat;
      text-align: center;
      font-family: Arial, sans-serif;
    }
    input[type='text'] {
      width: 300px;
      padding: 12px 16px;
      border: 2px solid #fff;
      background: transparent;
      border-radius: 20px;
      display: block;
      margin: 1rem auto;
      outline: none;
      font-size: 1rem;
    }
    input[type='text']:focus {
      border-color: #db133a;
      box-shadow: 0 0 0 3px rgba(219, 19, 58, 0.2);
    }
    .btn {
      background: #db133a;
      border: none;
      height: 2.5rem;
      border-radius: 20px;
      width: 330px;
      display: block;
      color: #fff;
      outline: none;
      cursor: pointer;
      margin: 1rem auto;
      font-size: 1rem;
      transition: background 0.3s;
    }
    .btn:hover {
      background: #b01030;
    }
    .btn.secondary {
      background: #2274A5;
      margin-top: 0.5rem;
    }
    .btn.secondary:hover {
      background: #1a5d85;
    }
    ::placeholder {
      color: #666;
    }
    .show {
      font-size: 1.2rem;
      color: #fff;
      margin-top: 1rem;
      min-height: 60px;
    }
    .validation-message {
      color: #f87171;
      background: rgba(248, 113, 113, 0.2);
      padding: 0.5rem;
      border-radius: 8px;
      margin: 0.5rem auto;
      max-width: 330px;
    }
  </style>
</head>
<body>
  <h1>HTML novalidate एट्रिब्यूट डेमो</h1>
  
  <form id="demoForm">
    <input type="text" name="username" placeholder="अपना नाम दर्ज करें (आवश्यक)" required>
    <input type="submit" value="सबमिट करें" class="btn">
  </form>
  
  <button type="button" class="btn secondary" onclick="toggleNovalidate()">
    <span id="toggleText">नो-वैलिडेशन सक्षम करें</span>
  </button>
  
  <div class="show" id="statusDisplay"></div>

  <script>
    const form = document.getElementById('demoForm');
    const statusDisplay = document.getElementById('statusDisplay');
    const toggleText = document.getElementById('toggleText');
    let novalidateEnabled = false;
    
    // फॉर्म सबमिट इवेंट
    form.addEventListener('submit', function(e) {
      e.preventDefault(); // वास्तविक सबमिशन रोकें
      const input = form.querySelector('input[name="username"]');
      
      if (form.noValidate) {
        statusDisplay.innerHTML = `
          <p style="color: #4ade80;">✓ फॉर्म सबमिट हो गया (novalidate सक्रिय)</p>
          <p>दर्ज किया गया: <strong>${input.value || '(खाली)'}</strong></p>
        `;
      } else {
        // ब्राउज़र वैलिडेशन स्वचालित रूप से चलेगा
        if (!input.value.trim()) {
          statusDisplay.innerHTML = '<p class="validation-message">⚠ ब्राउज़र वैलिडेशन: कृपया नाम दर्ज करें।</p>';
          input.reportValidity(); // ब्राउज़र का डिफ़ॉल्ट UI दिखाएं
        } else {
          statusDisplay.innerHTML = `
            <p style="color: #4ade80;">✓ फॉर्म सबमिट हो गया (वैलिडेशन पास)</p>
            <p>दर्ज किया गया: <strong>${input.value}</strong></p>
          `;
        }
      }
    });
    
    function toggleNovalidate() {
      novalidateEnabled = !novalidateEnabled;
      form.noValidate = novalidateEnabled;
      toggleText.textContent = novalidateEnabled ? 'नो-वैलिडेशन अक्षम करें' : 'नो-वैलिडेशन सक्षम करें';
      
      statusDisplay.innerHTML = `
        <p>novalidate एट्रिब्यूट: <strong>${novalidateEnabled ? 'सक्षम' : 'अक्षम'}</strong></p>
        <p><small>अब नाम के बिना सबमिट करने का प्रयास करें।</small></p>
      `;
    }
  </script>
</body>
</html>

आउटपुट (Output)

प्रारंभ में, खाली फील्ड के साथ सबमिट करने पर ब्राउज़र वैलिडेशन चेतावनी दिखाता है:

HTML novalidate एट्रिब्यूट: फॉर्म वैलिडेशन बायपास करें

"नो-वैलिडेशन सक्षम करें" बटन पर क्लिक करने के बाद, फॉर्म बिना वैलिडेशन के सबमिट हो जाता है:

HTML novalidate एट्रिब्यूट: फॉर्म वैलिडेशन बायपास करें

खाली सबमिशन सफल:

HTML novalidate एट्रिब्यूट: फॉर्म वैलिडेशन बायपास करें

महत्वपूर्ण बिंदु

कब उपयोग करें

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

कब न उपयोग करें

  • सरल फॉर्म जहां नेटिव वैलिडेशन पर्याप्त है।
  • जब आप उपयोगकर्ता को तत्काल दृश्य प्रतिक्रिया देना चाहते हैं (नेटिव UI प्रदान करता है)।
  • सुरक्षा-महत्वपूर्ण डेटा के लिए केवल क्लाइंट-साइड वैलिडेशन पर भरोसा न करें।

ब्राउज़र समर्थन

सभी आधुनिक ब्राउज़र (Chrome 10+, Firefox 4+, Safari 10.1+, Edge 12+, IE 10+)।

संबंधित एट्रिब्यूट्स

  • required - फील्ड अनिवार्य बनाता है
  • pattern - रेगुलर एक्सप्रेशन वैलिडेशन
  • min/max/step - संख्या/दिनांक सीमाएं
  • type - ईमेल, यूआरएल, नंबर आदि के लिए अंतर्निहित वैलिडेशन
  • formnovalidate - विशिष्ट सबमिट बटन पर लागू (बटन एट्रिब्यूट)

  1. HTML start एट्रिब्यूट HTML start एट्रिब्यूट

    परिचय HTML start एट्रिब्यूट HTML दस्तावेज़ में एक क्रमित सूची (<ol>) के पहले सूची आइटम के प्रारंभिक मान को परिभाषित करता है। यह संख्यांकन को 1 के अलावा किसी अन्य संख्या से शुरू करने की अनुमति देता है। सिंटैक्स <ol start=number></ol> उदाहरण <!DOCTYPE html> <html> <s

  1. HTML Form method एट्रिब्यूट: GET vs POST HTML Form method एट्रिब्यूट: GET vs POST

    HTML Form method एट्रिब्यूट परिभाषित करता है कि फॉर्म डेटा सर्वर को कैसे भेजा जाए: GET (URL पैरामीटर्स के रूप में) या POST (HTTP रिक्वेस्ट बॉडी में)। यह सुरक्षा, डेटा लंबाई, कैशिंग, और बुकमार्केबिलिटी को प्रभावित करता है। सिंटैक्स (Syntax) <form method=get | post></form> get (डिफ़ॉल

  1. HTML फॉर्म action एट्रिब्यूट HTML फॉर्म action एट्रिब्यूट

    HTML फॉर्म action एट्रिब्यूट परिभाषित करता है कि जब HTML दस्तावेज़ में एक फॉर्म सबमिट किया जाता है तो फॉर्म डेटा कहां भेजा जाए।सिंटैक्सनिम्नलिखित सिंटैक्स है:<form action=”URL”></form>आइए HTML फॉर्म action एट्रिब्यूट का एक उदाहरण देखें:उदाहरण<!DOCTYPE html> <html>