दिलचस्प पोस्ट
Meteor.methods रिटर्न अनिर्धारित नोड पैकेज (ग्रन्ट) स्थापित है लेकिन उपलब्ध नहीं है अजगर लिपि को पार्स करने / पार्स करने का सबसे अच्छा तरीका क्या है? शांत वेब सेवा शरीर प्रारूप एक जार के भीतर जेआर सहित कक्षापथ आई ++ और ++ आई में फॉर लूप (जावा) के बीच अंतर क्या है? Regex में \ b और \ B के बीच अंतर ऑब्जेक्ट संपत्ति से सरणी से ऑब्जेक्ट निकालें पाप्लोट स्कैटर साजिश मार्कर का आकार GCC / clang विधानसभा आउटपुट से "शोर" को कैसे निकालना है? फ़ायरफ़ॉक्स और आईई में एड्रेस बार के बिना नई पॉपअप विंडो खोलें कोणीय – एनजी-स्विच एनजी-मॉडल बाँध नहीं करता है रिलेटिव लेआउट में प्रतिशत की चौड़ाई कास्टिंग कच्चे तार अजगर अपाचे उन्हें प्रदर्शित करने के बजाय php फ़ाइलों को डाउनलोड कर रहा है

jQuery अक्षम / सबमिट बटन सक्षम करें

मेरे पास यह html है:

<input type="text" name="textField" /> <input type="submit" value="send" /> 

मैं यह कैसे कर सकता हूं:

  • जब पाठ फ़ील्ड खाली होता है तो सबमिट को अक्षम करना चाहिए (अक्षम = "अक्षम")
  • विकलांग फ़ील्ड को निकालने के लिए पाठ फ़ील्ड में कुछ टाइप किया जाता है
  • यदि टेक्स्ट फ़ील्ड फिर से खाली हो जाता है (टेक्स्ट हटा दिया गया है) सबमिट बटन फिर से अक्षम होना चाहिए

मैंने ऐसा कुछ करने की कोशिश की:

 $(document).ready(function(){ $('input[type="submit"]').attr('disabled','disabled'); $('input[type="text"]').change(function(){ if($(this).val != ''){ $('input[type="submit"]').removeAttr('disabled'); } }); }); 

… लेकिन यह काम नहीं करता है कोई विचार? धन्यवाद।

वेब के समाधान से एकत्रित समाधान "jQuery अक्षम / सबमिट बटन सक्षम करें"

समस्या यह है कि परिवर्तन ईवेंट केवल तभी आग लगती है जब फ़ोकस इनपुट से दूर चले जाते हैं (जैसे कोई व्यक्ति इनपुट या टैब्स से बाहर निकलता है)। इसके बजाय कुंजीपटल का उपयोग करने का प्रयास करें:

 $(document).ready(function() { $(':input[type="submit"]').prop('disabled', true); $('input[type="text"]').keyup(function() { if($(this).val() != '') { $(':input[type="submit"]').prop('disabled', false); } }); }); 
 $(function() { $(":text").keypress(check_submit).each(function() { check_submit(); }); }); function check_submit() { if ($(this).val().length == 0) { $(":submit").attr("disabled", true); } else { $(":submit").removeAttr("disabled"); } } 

यह सवाल 2 साल का है, लेकिन यह अभी भी एक अच्छा सवाल है और यह पहला Google परिणाम था … लेकिन सभी मौजूदा उत्तरों HTML विशेषता को हटाना और निकालने की सलाह देते हैं (हटाएट ("अक्षम")) "अक्षम", जो नहीं है सही दृष्टिकोण गुण बनाम संपत्ति के बारे में बहुत भ्रम है।

एचटीएमएल

मार्कअप में <input type="button" disabled> में <input type="button" disabled> को W3C द्वारा एक बूलियन विशेषता कहा जाता है

HTML बनाम डोम

उद्धरण:

एक संपत्ति डोम में है; एक विशेषता HTML में है जिसे DOM में पार्स किया गया है।

https://stackoverflow.com/a/7572855/664132

JQuery

सम्बंधित:

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

प्रासंगिक:

गुण सामान्यतः सीरियल किए गए HTML विशेषता को परिवर्तित किए बिना एक DOM तत्व की गतिशील स्थिति को प्रभावित करते हैं। उदाहरणों में इनपुट तत्वों की मूल्य सम्पत्ति, निविष्टियों और बटनों की अक्षम संपत्ति या चेकबॉक्स की चेक की गई संपत्ति शामिल है। .prop () विधि को अक्षम करने के लिए और .attr () विधि के बजाय चेक करने के लिए उपयोग किया जाना चाहिए।

 $( "input" ).prop( "disabled", false ); 

सारांश

[…] को DOM गुणों को बदलना […] अक्षम तत्वों की स्थिति, .prop () विधि का उपयोग करें।

( http://api.jquery.com/attr/ )


प्रश्न के परिवर्तन वाले हिस्से पर अक्षम होने के लिए: "इनपुट" नामक एक घटना है, लेकिन ब्राउज़र समर्थन सीमित है और यह एक jQuery ईवेंट नहीं है, इसलिए jQuery इसे काम नहीं करेगा। परिवर्तन की घटना मज़बूती से काम करती है, लेकिन जब वह फोकस खो देता है तो उसे निकाल दिया जाता है। इसलिए कोई दो को जोड़ सकता है (कुछ लोग भी कुंजीप और पेस्ट के लिए भी सुनते हैं)।

मेरा यह मतलब दिखाने के लिए यहाँ कोड का एक अनचाहे टुकड़ा है:

 $(document).ready(function() { var $submit = $('input[type="submit"]'); $submit.prop('disabled', true); $('input[type="text"]').on('input change', function() { //'input change keyup paste' $submit.prop('disabled', !$(this).val().length); }); }); 

या हमारे लिए जो हर छोटी चीज़ के लिए jq का उपयोग करना पसंद नहीं करते हैं:

 document.getElementById("submitButtonId").disabled = true; 

एरिक, आपका कोड मेरे लिए काम नहीं करता है जब उपयोगकर्ता पाठ में प्रवेश करता है तो सभी पाठ को हटा देता है अगर कोई एक ही समस्या का अनुभव करता है तो मैंने एक और संस्करण बनाया है यहाँ लोग जा सकते हैं:

 $('input[type="submit"]').attr('disabled','disabled'); $('input[type="text"]').keyup(function(){ if($('input[type="text"]').val() == ""){ $('input[type="submit"]').attr('disabled','disabled'); } else{ $('input[type="submit"]').removeAttr('disabled'); } }) 

अक्षम विशेषता का उपयोग हटाने के लिए,

  $("#elementID").removeAttr('disabled'); 

और अक्षम विशेषता उपयोग जोड़ने के लिए,

 $("#elementID").prop("disabled", true); 

का आनंद लें 🙂

आप इस तरह से कुछ भी उपयोग कर सकते हैं:

 $(document).ready(function() { $('input[type="submit"]').attr('disabled', true); $('input[type="text"]').on('keyup',function() { if($(this).val() != '') { $('input[type="submit"]').attr('disabled' , false); }else{ $('input[type="submit"]').attr('disabled' , true); } }); }); 

यहाँ लाइव उदाहरण है

यहाँ फ़ाइल इनपुट फ़ील्ड के लिए समाधान है

जब कोई फाइल नहीं चुनी जाती है तो फ़ाइल फ़ील्ड के लिए एक सबमिट बटन को अक्षम करने के लिए, उपयोगकर्ता अपलोड करने के लिए एक फ़ाइल चुनने के बाद सक्षम करें:

 $(document).ready(function(){ $("#submitButtonId").attr("disabled", "disabled"); $("#fileFieldId").change(function(){ $("#submitButtonId").removeAttr("disabled"); }); }); 

एचटीएमएल:

 <%= form_tag your_method_path, :multipart => true do %><%= file_field_tag :file, :accept => "text/csv", :id => "fileFieldId" %><%= submit_tag "Upload", :id => "submitButtonId" %><% end %> 

यदि बटन स्वतः ही एक jQuery स्टाइल बटन है (बटन। () के साथ आपको बटन की स्थिति को ताज़ा करने की आवश्यकता होगी ताकि आपके द्वारा अक्षम विशेषता को हटा दिया गया हो / हटा दिया जाए तो सही वर्गों को जोड़ा / हटा दिया जाए।

 $( ".selector" ).button( "refresh" ); 

ऊपर दिए गए उत्तर भी मेनू आधारित कट / पेस्ट ईवेंट की जांच नहीं कर रहे हैं। नीचे कोड है जो मैं दोनों को करने के लिए करता हूं। ध्यान दें कि वास्तव में कार्यवाही एक समय समाप्त होती है क्योंकि कट और पिछले घटनाओं में परिवर्तन होने से पहले वास्तव में आग लग जाती है, इसलिए समय-समय पर ऐसा होने में कुछ समय लगता है

 $( ".your-input-item" ).bind('keyup cut paste',function() { var ctl = $(this); setTimeout(function() { $('.your-submit-button').prop( 'disabled', $(ctl).val() == ''); }, 100); }); 

मेरे उपयोग के मामले को फिट करने के लिए मुझे थोड़ा काम करना पड़ा।

मेरे पास ऐसा प्रपत्र है जहां सबमिट करने से पहले सभी फ़ील्ड का मान होना चाहिए।

यहां मैंने जो किया है:

  $(document).ready(function() { $('#form_id button[type="submit"]').prop('disabled', true); $('#form_id input, #form_id select').keyup(function() { var disable = false; $('#form_id input, #form_id select').each(function() { if($(this).val() == '') { disable = true }; }); $('#form_id button[type="submit"]').prop('disabled', disable); }); }); 

यहां उनके उत्तर के लिए सभी के लिए धन्यवाद

मेरी परियोजना से इस स्निपेट को देखो

  $("input[type="submit"]", "#letter-form").on("click", function(e) { e.preventDefault(); $.post($("#letter-form").attr('action'), $("#letter-form").serialize(), function(response) {// your response from form submit if (response.result === 'Redirect') { window.location = response.url; } else { Message(response.saveChangesResult, response.operation, response.data); } }); $(this).attr('disabled', 'disabled'); //this is what you want 

इसलिए आपके ऑपरेशन के निष्पादित होने के बाद बटन को अक्षम कर दिया गया है

$(this).attr('disabled', 'disabled');

सबमिट करें बटन को सक्षम या अक्षम करने के लिए कृपया नीचे दिए गए कोड देखें

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

 <script> $(document).ready(function() { $(':input[type="submit"]').prop('disabled', true); $('#Name').keyup(function() { ToggleButton(); }); $('#City').keyup(function() { ToggleButton(); }); }); function ToggleButton() { if (($('#Name').val() != '') && ($('#City').val() != '')) { $(':input[type="submit"]').prop('disabled', false); return true; } else { $(':input[type="submit"]').prop('disabled', true); return false; } } </script> 
 <form method="post"> <div class="row"> <div class="col-md-4"> <h2>Getting started</h2> <fieldset> <label class="control-label text-danger">Name</label> <input type="text" id="Name" name="Name" class="form-control" /> <label class="control-label">Address</label> <input type="text" id="Address" name="Address" class="form-control" /> <label class="control-label text-danger">City</label> <input type="text" id="City" name="City" class="form-control" /> <label class="control-label">Pin</label> <input type="text" id="Pin" name="Pin" class="form-control" /> <input type="submit" value="send" class="btn btn-success" /> </fieldset> </div> </div> </form> 

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

 <input type="text" name="textField" id="textField"/> <input type="submit" value="send" id="submitYesNo"/> 

अब ये आपका jQuery

 $("#textField").change(function(){ if($("#textField").val()=="") $("#submitYesNo").prop('disabled', true) else $("#submitYesNo").prop('disabled', false) }); 

फ़ॉर्म लॉगइन के लिए:

 <form method="post" action="/login"> <input type="text" id="email" name="email" size="35" maxlength="40" placeholder="Email" /> <input type="password" id="password" name="password" size="15" maxlength="20" placeholder="Password"/> <input type="submit" id="send" value="Send"> </form> 

जावास्क्रिप्ट:

 $(document).ready(function() { $('#send').prop('disabled', true); $('#email, #password').keyup(function(){ if ($('#password').val() != '' && $('#email').val() != '') { $('#send').prop('disabled', false); } else { $('#send').prop('disabled', true); } }); });