html - अक्षम फॉर्म इनपुट अनुरोध में प्रकट नहीं होते हैं




forms http (4)

Jquery का उपयोग करना और AJAX के साथ डेटा भेजना, आप अपनी समस्या का समाधान कर सकते हैं:

<script>

$('#form_id').submit(function() {
    $("#input_disabled_id").prop('disabled', false);

    //Rest of code
    })
</script>

मेरे पास एक फॉर्म में कुछ अक्षम इनपुट हैं और मैं उन्हें सर्वर पर भेजना चाहता हूं, लेकिन क्रोम उन्हें अनुरोध से बाहर कर देता है।

क्या छुपे हुए क्षेत्र को जोड़ने के बिना इसके लिए कोई कामकाज है?

<form action="/Media/Add">
    <input type="hidden" name="Id" value="123" />

    <!-- this does not appear in request -->
    <input type="textbox" name="Percentage" value="100" disabled="disabled" /> 

</form>

अक्षम विशेषता वाले तत्व सबमिट नहीं किए गए हैं या आप कह सकते हैं कि उनके मान पोस्ट नहीं किए गए हैं ( फॉर्म डेटा सेट बनाने के लिए spec में चरण 3 के तहत दूसरा बुलेट बिंदु देखें)।

अर्थात,

<input type="textbox" name="Percentage" value="100" disabled="disabled" /> 

FYI करें,

  1. अक्षम नियंत्रण फोकस प्राप्त नहीं करते हैं।
  2. अक्षम नियंत्रण टैबबिंग नेविगेशन में छोड़े गए हैं।
  3. अक्षम नियंत्रण सफलतापूर्वक पोस्ट नहीं किया जा सकता है।

आप अपने मामले में readonly विशेषता का उपयोग कर सकते हैं, ऐसा करके आप अपने क्षेत्र का डेटा पोस्ट कर सकेंगे।

अर्थात,

<input type="textbox" name="Percentage" value="100" readonly="readonly" />

FYI करें,

  1. केवल-पढ़ने वाले तत्व फोकस प्राप्त करते हैं लेकिन उपयोगकर्ता द्वारा संशोधित नहीं किया जा सकता है।
  2. केवल-पढ़ने वाले तत्व टैबबिंग नेविगेशन में शामिल हैं।
  3. केवल-पढ़ने वाले तत्व सफलतापूर्वक पोस्ट किए जाते हैं।

मैं इस जवाब को अद्यतन कर रहा हूं क्योंकि यह बहुत उपयोगी है। इनपुट में केवल पढ़ने के लिए जोड़ें।

तो फॉर्म होगा:

<form action="/Media/Add">
    <input type="hidden" name="Id" value="123" />
    <input type="textbox" name="Percentage" value="100" readonly/>
</form>

यदि आपको बिल्कुल फ़ील्ड अक्षम करना है और डेटा पास करना है, तो आप एक ही डेटा को एक छिपे हुए फ़ील्ड में इनपुट करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं (या केवल छुपा फ़ील्ड भी सेट करें)। यह आपको इसे अक्षम करने की अनुमति देगा लेकिन फिर भी डेटा पोस्ट करेगा भले ही आप किसी अन्य पृष्ठ पर पोस्ट करेंगे।







browser