2013-04-11 8 views
6

मैं एक वेबपैलिकेशन बना रहा हूं जो कुछ डेटा अनुरोध करने के लिए एक jquery सबमिट का उपयोग करता है, लेकिन मैं नहीं चाहता कि लोग पहली बार सबमिट करने के बाद फॉर्म सबमिट करें। तो मैं एक सबमिट के बाद चाहता हूं, कि अगला सबमिट कुछ सेकंड के लिए कुछ भी नहीं करता है।jQuery फॉर्म सबमिट करें, सबमिट करने के बाद कई बार भेजने से रोकें

$("#updatestock_form").submit(function(e){ 

    // requesting my data.. 


}); 

मैं इसे कैसे प्राप्त कर सकता हूं?

+0

आप को दूर या अक्षम सबमिट बटन, या आप की जाँच करने के लिए एक ध्वज का उपयोग कर सकते हैं अगर एक रूप पहले से ही किया गया है सकते हैं – Uby

उत्तर

8

"तो मैं सबमिट करने के बाद चाहता हूं, कि अगला सबमिट कुछ सेकंड के लिए कुछ भी नहीं करता है।"

आप मतलब है कि आप उपयोगकर्ता की दूसरी और बाद में प्रस्तुत प्रयास सेकंड की एक निश्चित संख्या आप कर सकते हैं कि तरीकों की एक संख्या में होने के बाद तक ध्यान नहीं दिया जा चाहते हैं। यहां दिमाग में आने वाला पहला व्यक्ति है:

var allowSubmit = true; 
$("#updatestock_form").submit(function(e){ 
    if (!allowSubmit) return false; 
    allowSubmit = false; 
    setTimeout(function(){ allowSubmit = true; }, 5000); 

    // your existing submit code here 
    // requesting my data.. 
}); 

यह एक झंडा है जो इंगित करता है कि वर्तमान में सबमिट की अनुमति है या नहीं। सबमिट ईवेंट पर यदि वह झंडा झूठा है तो सबमिट ईवेंट को रद्द करने के लिए तुरंत false वापस करें। अन्यथा (यदि यह वर्तमान में true है) ध्वज को false पर सेट करें, 5 सेकंड के बाद ध्वज को बदलने के लिए टाइमआउट सेट करें, और फिर अपने मौजूदा सबमिट कोड के साथ आगे बढ़ें।

बटन के onclick घटना पर
+0

सबमिट करने से नहीं रोकें, धन्यवाद, मैं यही देख रहा हूं! – Edwin

2
$("#updatestock_form").submit(function(e){ 
    $(this).unbind("submit") 
    $("#submitButton").attr("disabled", "disabled") 
}); 

बहुत आसान।

+0

भेजा गया और कुछ दूसरी चीज़ के लिए 'setTimeout' –

+0

के लिए लाइन जोड़ें वास्तव में यह काम नहीं करेगा, आप केवल jQuery श्रोता को हटा देंगे,' फॉर्म 'को – Uby

0

आप जमा करने के लिए AJAX अनुरोध कर रहे हैं? तो कुछ लॉकिंग चर var locked; बनाएं और इसे locked = true; पर सेट करें जब इसे AJAX कॉल समाप्त होने पर false पर सबमिट और रीसेट करें। (sucess-condition)

0

अक्षम करें बटन

$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); }); 

और सफल ऑपरेशन के बाद विकलांग विशेषता को दूर

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