अक्षम इनपुट के मान जमा नहीं किए जाएंगे


224

यह वही है जो मुझे फ़ायरफ़ॉक्स में फ़ायरबग द्वारा मिला।

क्या यह अन्य ब्राउज़रों में समान है?

यदि हां, तो इसका कारण क्या है?


23
आप एक 'readonly' विशेषता सेट कर सकते हैं। उदाहरण के लिए क्रोम इसे एक अक्षम क्षेत्र के रूप में प्रस्तुत करता है लेकिन इसे प्रस्तुत करता है।
पेट्रियस

जवाबों:


189

हां, सभी ब्राउज़रों को अक्षम इनपुट सबमिट नहीं करना चाहिए, क्योंकि वे केवल पढ़ने के लिए हैं।

अधिक जानकारी (धारा 17.12.1)

परिभाषाएँ दें

अक्षम [CI] जब प्रपत्र नियंत्रण के लिए सेट किया जाता है, तो यह बूलियन विशेषता उपयोगकर्ता इनपुट के लिए नियंत्रण को निष्क्रिय कर देती है। जब सेट किया जाता है, तो अक्षम विशेषता का तत्व पर निम्नलिखित प्रभाव पड़ता है:

  • अक्षम नियंत्रण पर ध्यान नहीं दिया जाता है।
  • टैबिंग नेविगेशन में अक्षम नियंत्रणों को छोड़ दिया गया है।
  • अक्षम नियंत्रण सफल नहीं हो सकते।

निम्नलिखित तत्व अक्षम विशेषता का समर्थन करते हैं: बटन, INPUT, OPTGROUP, विकल्प, चयन, और पाठ।

यह विशेषता विरासत में मिली है, लेकिन स्थानीय घोषणाएँ विरासत में मिले मूल्य से अधिक हैं।

कैसे निष्क्रिय तत्व प्रदान किए जाते हैं यह उपयोगकर्ता एजेंट पर निर्भर करता है। उदाहरण के लिए, कुछ उपयोगकर्ता एजेंट "ग्रे आउट" अक्षम मेनू आइटम, बटन लेबल, आदि।

इस उदाहरण में, INPUT तत्व अक्षम है। इसलिए, यह उपयोगकर्ता इनपुट प्राप्त नहीं कर सकता है और न ही इसका मूल्य फॉर्म के साथ जमा किया जाएगा।

<INPUT disabled name="fred" value="stone">

ध्यान दें। स्क्रिप्ट के माध्यम से गतिशील विशेषता के मूल्य को गतिशील रूप से संशोधित करने का एकमात्र तरीका है।


86
वैकल्पिक हल: <input type="hidden">अक्षम इनपुट के समान नाम / मान के साथ एक तत्व जोड़ें ।
जॉन कुगेलमैन

कोई भी जानकारी जिस पर ब्राउज़र करता है और जो नहीं मानता है?
एलिसोन

82
इसके बजाय readonly = "readonly" का उपयोग करें :) देखें stackoverflow.com/questions/7357256/…
Adrien Be

1
@ ऐलिसन: फ़ायरफ़ॉक्स और क्रोम इसे मानते हैं (अक्षम इनपुट प्रस्तुत नहीं किया गया है)। अन्य ब्राउज़रों पर कोशिश नहीं की।
Adrien Be

1
@JohnKugelman क्यों एक ही नाम? विकलांग को किसी भी तरह से प्रस्तुत नहीं किया जाएगा .. साथ ही छिपे हुए को सही नाम दे सकता है और विकलांग के लिए एक अलग का उपयोग कर सकता है
आर्थर

286

disabled इनपुट डेटा जमा नहीं करेगा।

readonlyविशेषता का उपयोग करें :

<input type="text" readonly />

स्रोत यहाँ


@FrankFang, ठीक है, लेकिन, जब मैं लारवेल सामूहिक ब्लेड टेम्पलेट के लिए डेटा पास कर रहा हूं। यह काम नहीं करेगा। उस तरह से डेटा नहीं भेज सकते।
ssi-aik

@ ssi-aik readonlyकाम करता है, बस सुनिश्चित करें कि आप इनपुट के लिए "नाम" पास करें।
बेनोव

26

आप विकलांगों की नकल करने के लिए तीन चीजों का उपयोग कर सकते हैं:

  1. HTML: readonlyविशेषता (ताकि इनपुट में मौजूद मूल्य को फॉर्म सबमिशन पर इस्तेमाल किया जा सके।

  2. CSS: 'pointer-events':'none'(इनपुट पर क्लिक करने से उपयोगकर्ता को रोकना)

  3. HTML: tabindex="-1"(कीबोर्ड से इनपुट पर नेविगेट करने के लिए उपयोगकर्ता को रोकना)


22

वे प्रस्तुत नहीं करते हैं, क्योंकि यह वही है जो डब्ल्यू 3 सी विनिर्देश में कहता है

17.13.2 सफल नियंत्रण

प्रस्तुत करने के लिए एक सफल नियंत्रण "मान्य" है। [स्निप]

  • जो नियंत्रण अक्षम हैं वे सफल नहीं हो सकते।

दूसरे शब्दों में, विनिर्देश कहता है कि जो नियंत्रण अक्षम हैं उन्हें अमान्य माना जाता है और उन्हें प्रस्तुत नहीं किया जाना चाहिए।


2

Disabledनियंत्रण सफल नहीं हो सकते, और प्रस्तुत करने के लिए एक सफल नियंत्रण "मान्य" है। यही कारण है कि अक्षम नियंत्रण फ़ॉर्म के साथ सबमिट नहीं होते हैं।


1

दो विशेषताएँ हैं, अर्थात् readonlyऔर disabled, एक अर्ध-रीड-केवल इनपुट बना सकते हैं। लेकिन उनके बीच एक छोटा सा अंतर है।

<input type="text" readonly />
<input type="text" disabled />
  • readonlyविशेषता अपने इनपुट पाठ विकलांग बनाता है, और उपयोगकर्ताओं के लिए यह अब और बदलने में सक्षम नहीं हैं।
  • न केवल disabledविशेषता आपके इनपुट-टेक्स्ट को अक्षम (अपरिवर्तनीय) बनाएगी, बल्कि इसे सबमिट भी नहीं किया जा सकता है

jQuery दृष्टिकोण (1):

$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);

jQuery दृष्टिकोण (2):

$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");

जावास्क्रिप्ट दृष्टिकोण:

document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;

PS disabledऔर readonlyमानक HTML विशेषताएँ हैं। propके साथ पेश किया jQuery 1.6


0

चुनिंदा नियंत्रण अभी भी पठनीय एट्रीब्यूट पर क्लिक करने योग्य हैं

यदि आप अभी भी नियंत्रण अक्षम करना चाहते हैं, लेकिन आप इसका मान पोस्ट करना चाहते हैं। आप एक छिपे हुए क्षेत्र बनाने पर विचार कर सकते हैं। अपने नियंत्रण के रूप में एक ही मूल्य के साथ।

फिर चुनिंदा बदलाव पर एक ज्यूकरी बनाएं

$('#your_select_id').change(function () {
    $('#your_hidden_selectid').val($('#your_select_id').val());
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.