2013-11-23 5 views
12

मैं अपने लेआउट देखने के लिए निम्न स्क्रिप्ट को शामिल किया है, पर दर्ज किए जाने से प्रपत्र पाएगा अक्षम करना मेरी स्क्रिप्ट का सबमिट बटन को अक्षम करना है, और मॉडल को मान्य नहीं है या यदि उपयोगकर्ता फॉर्म मान बदलता है तो उन्हें फिर से सक्षम करें। उपर्युक्त स्क्रिप्ट आईई & फ़ायरफ़ॉक्स पर अच्छी तरह से काम करेगी, लेकिन क्रोम पर मैं फॉर्म सबमिट करने में असमर्थ हूं, जब उपयोगकर्ता सबमिट बटन पर क्लिक करता है, तो बटन अक्षम हो जाएगा लेकिन फॉर्म सबमिट नहीं किया जाएगा। कोई विचार है कि मैं क्रोम पर इस मुद्दे को कैसे हल कर सकता हूं?एक सबमिट बटन जब उस पर क्लिक, मेरे asp.net MVC के अंदर गूगल क्रोम

+0

जो लिंक आप प्रदान करते हैं वह विभिन्न समस्या के बारे में बात कर रहा है। मेरे मामले में मैं क्रोम पर बटन को अक्षम करने में सक्षम हूं। लेकिन मेरी समस्या यह है कि फॉर्म जमा नहीं किया जाएगा .. –

उत्तर

21

बटन के क्लिक ईवेंट में बटन को अक्षम करने के बजाय - इसे फ़ॉर्म के सबमिट ईवेंट में अक्षम करें (आप वहां वैधता के लिए फॉर्म भी देख सकते हैं)।

इस तरह यह सभी ब्राउज़रों में सार्वभौमिक रूप से काम करेगा।

<form action="http://www.microsoft.com"> 
    <input class="btn-primary" type="submit" value="submit"/> 
</form> 


$('form').submit(function() { 
    $('input.btn-primary').prop("disabled", "disabled"); 
}) 
+0

तो क्या आपका मतलब है कि मेरा दृष्टिकोण गलत है? और क्या आप सलाह दे सकते हैं कि मैं सबमिट ईवेंट पर कैसे अक्षम कर सकता हूं? –

+3

आधार सही है, लेकिन जैसा कि आप देख सकते हैं कि यह सभी ब्राउज़रों में काम नहीं करता है। यहां वैकल्पिक विकल्प का एक छोटा डेमो है: http://jsfiddle.net/atd7X/ –

+0

यह क्रोम और आईई और फोरफॉक्स पर अच्छा काम करता है। तो अब मुझे सुरक्षित पक्ष पर होना चाहिए? या कोड का उपयोग करने की अन्य सीमा है? –

2

मैं सिर्फ एक ही मुद्दा यह है कि गूगल क्रोम fireing नहीं कर रहा था मेरी घटना प्रस्तुत जब बटनjQuery के माध्यम से विकलांग मिला था।

पृष्ठभूमि जानकारी: मेरे पास एक बटन है जिसमें क्लिक होने पर अक्षम किया जाएगा। तो PHP सबमिट कोड को कई बार नहीं कहा जाता है। यह सबमिट एक ड्रूपल बैकएंड पर चल रहा है, मेरे मामले में एक कस्टम submit_hook के रूप में। लेकिन निश्चित रूप से किसी भी अन्य सीएमएस में काम करने के लिए। लेकिन यह मुद्दा नहीं है। असली मुद्दा यह है कि जावास्क्रिप्ट कोड बटन को अक्षम कर रहा है और Google क्रोम सोचता है कि बटन पूरी तरह से मर चुका है और न केवल अक्षम है। तो यह अब किसी भी कोड को आग नहीं लगाता है।

लेकिन यह समस्या ठीक करने के लिए बहुत आसान है।

तो यह कोड/आईईFirefox पर काम कर रहा है:

$(this).parents('form').submit(); 

:

(function($) { 
Drupal.behaviors.somebehaviour = { 
    attach: function(context, settings) { 
     $('#edit-submit').click(function (e) { 
      $('#edit-submit').val('Is saved...'); 
      $('#edit-submit').prop('disabled', 'disabled'); 
     }); 
    } 
}; 
})(jQuery); 

और यह रूप में अच्छी तरह क्रोम पर चल रही है, तो आप लाइन जोड़ने की जरूरत इसलिए इस उदाहरण के लिए यह अंततः होगा:

(function($) { 
Drupal.behaviors.somebehaviour = { 
    attach: function(context, settings) { 
     $('#edit-submit').click(function (e) { 
      $('#edit-submit').val('Is saved...'); 
      $('#edit-submit').prop('disabled', 'disabled'); 
      $(this).parents('form').submit(); 
     }); 
    } 
}; 
})(jQuery); 
+0

मुझे यह जवाब पसंद आया, इसने मुझे इसे मेरे प्रस्तुत करने के बजाय मेरे जेनेरिक इवेंट हैंडलर में इसे संभालने की अनुमति दी –

संबंधित मुद्दे