JQuery में फॉर्म जमा करने से रोकें


170

मेरे पास एक फॉर्म है जो सर्वर को प्रोसेस करने में थोड़ा समय लेता है। मुझे यह सुनिश्चित करने की आवश्यकता है कि उपयोगकर्ता प्रतीक्षा करता है और फिर से बटन पर क्लिक करके फ़ॉर्म को फिर से सबमिट करने का प्रयास नहीं करता है। मैंने निम्नलिखित jQuery कोड का उपयोग करने की कोशिश की:

<script type="text/javascript">
$(document).ready(function() {
    $("form#my_form").submit(function() {
        $('input').attr('disabled', 'disabled');
        $('a').attr('disabled', 'disabled');
        return true;
    });
});
</script>

जब मैं फ़ायरफ़ॉक्स में यह कोशिश करता हूं तो सब कुछ अक्षम हो जाता है लेकिन किसी भी POST डेटा के साथ फॉर्म सबमिट नहीं किया जाता है। मैं फॉर्म जमा करने के लिए jQuery का उपयोग नहीं कर सकता क्योंकि मुझे फॉर्म के साथ सबमिट करने के लिए बटन की आवश्यकता है क्योंकि कई सबमिट बटन हैं और मैं निर्धारित करता हूं कि इसका उपयोग किसके द्वारा किया गया था, जिसका मूल्य POST में शामिल है। मुझे फॉर्म जमा करने की आवश्यकता है क्योंकि यह आम तौर पर होता है और मुझे ऐसा होने के बाद सब कुछ ठीक करने की आवश्यकता होती है।

धन्यवाद!


आप सभी को आपकी मदद के लिए शुक्रिया!
एडम

जवाबों:


315

2018 में अपडेट करें : मुझे इस पुराने उत्तर के लिए बस कुछ अंक मिले हैं, और बस यह जोड़ना चाहते हैं कि सबसे अच्छा समाधान ऑपरेशन को बेकार बनाना होगा ताकि डुप्लिकेट सबमिशन हानिरहित हो।

जैसे, यदि फॉर्म एक ऑर्डर बनाता है, तो फॉर्म में एक यूनिक आईडी डालें। पहली बार जब सर्वर उस आईडी के साथ एक ऑर्डर निर्माण अनुरोध देखता है, तो उसे इसे बनाना चाहिए और "सफलता" का जवाब देना चाहिए। बाद में प्रस्तुतियाँ भी "सफलता" का जवाब देना चाहिए (यदि ग्राहक को पहली प्रतिक्रिया नहीं मिली है) लेकिन कुछ भी नहीं बदलना चाहिए।

दौड़ की परिस्थितियों को रोकने के लिए डेटाबेस में एक अद्वितीयता जांच के माध्यम से डुप्लिकेट का पता लगाया जाना चाहिए।


मुझे लगता है कि आपकी समस्या यह रेखा है:

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

आप सभी इनपुट्स को अक्षम कर रहे हैं, जिनमें मुझे लगता है, वे हैं जिनका डेटा फ़ॉर्म सबमिट करना है।

बस सबमिट बटन अक्षम करने के लिए, आप ऐसा कर सकते हैं:

$('button[type=submit], input[type=submit]').prop('disabled',true);

हालाँकि, मुझे नहीं लगता कि IE उन प्रपत्रों को निष्क्रिय करने पर भी फॉर्म सबमिट करेगा। मैं एक अलग दृष्टिकोण सुझाता हूँ।

इसे हल करने के लिए एक jQuery प्लगइन

हमने निम्नलिखित कोड के साथ इस समस्या को हल किया है। यहां ट्रिक data()पहले से सबमिट किए गए या नहीं के रूप में फॉर्म को चिह्नित करने के लिए jQuery का उपयोग कर रहा है । इस तरह, हमें सबमिट बटन के साथ गड़बड़ नहीं करना है, जो IE से बाहर निकलता है।

// jQuery plugin to prevent double submission of forms
jQuery.fn.preventDoubleSubmission = function() {
  $(this).on('submit',function(e){
    var $form = $(this);

    if ($form.data('submitted') === true) {
      // Previously submitted - don't submit again
      e.preventDefault();
    } else {
      // Mark it so that the next submit can be ignored
      $form.data('submitted', true);
    }
  });

  // Keep chainability
  return this;
};

इसे इस तरह उपयोग करें:

$('form').preventDoubleSubmission();

यदि AJAX फॉर्म हैं जिन्हें प्रति पृष्ठ लोड में कई बार जमा करने की अनुमति दी जानी चाहिए , तो आप उन्हें यह इंगित करने वाला एक वर्ग दे सकते हैं, फिर उन्हें अपने चयनकर्ता से इस तरह बाहर रखें:

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();

2
बस एक सूचक - यह बेहतर नहीं होगा कैश करने के लिए $(this)एक करने के लिए var that = $(this)?
स्टुअर्ट।सलिनार

5
@ Stuart.Sklinar - अच्छा विचार है। $formहालांकि मैंने इस्तेमाल किया - 'फॉर्म' क्योंकि यह अधिक वर्णनात्मक है, और $मेरे कन्वेंशन द्वारा अग्रणी है , इसका मतलब है कि यह एक jQuery ऑब्जेक्ट है।
नाथन लॉन्ग

21
जब jquery का उपयोग करते समय फार्म वैध है यह जांचने के लिए बेहतर विनीत सत्यापन को मान्य करें। if ($ (यह) .valid)) {$ form.data ('सबमिट', ट्रू);}
cck

1
@ बहुत बढ़िया, मैंने इसका इस्तेमाल किया। आपके पास एक अतिरिक्त समापन पारेन था जिसे मैंने हटा दिया था: अगर ($ (यह) .valid) {$ form.data ('प्रस्तुत', सत्य);
ब्रायन मैकके

1
@BrianMacKay यदि फॉर्म मान्य नहीं है और सबमिट बटन दबाया जाता है तो यह jquery प्लगइन के निशान को प्रस्तुत करता है जो विशेषता सत्य है लेकिन विनीत सत्यापन सत्यापन त्रुटियों के कारण सबमिट करने से रोकता है। त्रुटियों को सुधारने के बाद कोई फॉर्म जमा नहीं कर सकता क्योंकि प्रस्तुत विशेषता सत्य है!
cck

44

समय दृष्टिकोण गलत है - आपको कैसे पता चलेगा कि क्लाइंट के ब्राउज़र पर कार्रवाई कब तक होगी?

यह कैसे करना है

$('form').submit(function(){
  $(this).find(':submit').attr('disabled','disabled');
});

जब फॉर्म सबमिट किया जाता है तो यह सभी सबमिट बटन को अंदर निष्क्रिय कर देगा

याद रखें, फ़ायरफ़ॉक्स में जब आप एक बटन को अक्षम करते हैं तो यह राज्य इतिहास में वापस जाने पर याद किया जाएगा। उदाहरण के लिए, आपको पृष्ठ लोड पर बटन को सक्षम करना होगा।


2
फ़ायर्फ़ॉक्स टिप के कारण +1, लेकिन क्या पेज लोड पर बटन सक्षम करने के अलावा कोई अन्य विकल्प है?
राफेल इसिड्रो

1
यह जाने का सबसे साफ तरीका है। मैं एक क्लिक ईवेंट हैंडलर के साथ सबमिट बटन को अक्षम करने की कोशिश कर रहा था, लेकिन मेरा दृष्टिकोण क्रोम के साथ समस्या पैदा कर रहा था। यह समाधान खूबसूरती से काम करता है।
एंथनी

1
इस दृष्टिकोण के साथ बहुत सावधान रहें, यदि आपके पास सबमिट बटन पर एक मूल्य है और आपको इसकी आवश्यकता है, तो फॉर्म इसे जमा नहीं करेगा।
फेबिन मेनेजर

नवीनतम jQuery प्रलेखन के अनुसार आपको .attr के बजाय .prop का उपयोग करना चाहिए। संदर्भ: api.jquery.com/prop/#entry-longdesc-1 ".prop () पद्धति को .attr () विधि के बजाय अक्षम और जाँचने के लिए उपयोग किया जाना चाहिए।"
J Plana

19

मुझे लगता है कि नाथन लॉन्ग का जवाब जाने का रास्ता है। मेरे लिए, मैं क्लाइंट-साइड सत्यापन का उपयोग कर रहा हूं, इसलिए मैंने सिर्फ एक शर्त जोड़ी है कि फॉर्म वैध हो।

EDIT : यदि इसे नहीं जोड़ा जाता है, तो क्लाइंट-साइड सत्यापन में त्रुटि होने पर उपयोगकर्ता कभी भी फॉर्म जमा नहीं कर सकेगा।

        // jQuery plugin to prevent double submission of forms
        jQuery.fn.preventDoubleSubmission = function () {
            $(this).on('submit', function (e) {
                var $form = $(this);

                if ($form.data('submitted') === true) {
                    // Previously submitted - don't submit again
                    alert('Form already submitted. Please wait.');
                    e.preventDefault();
                } else {
                    // Mark it so that the next submit can be ignored
                    // ADDED requirement that form be valid
                    if($form.valid()) {
                        $form.data('submitted', true);
                    }
                }
            });

            // Keep chainability
            return this;
        };

9

event.timeStampफ़ायरफ़ॉक्स में काम नहीं करता है। झूठे लौटना गैर-मानक है, आपको कॉल करना चाहिए event.preventDefault()। और जब हम इस पर होते हैं, हमेशा नियंत्रण निर्माण के साथ ब्रेसिज़ का उपयोग करते हैं

पिछले सभी उत्तरों को समेटने के लिए, यहां एक प्लगइन है जो काम करता है और क्रॉस-ब्राउज़र काम करता है।

jQuery.fn.preventDoubleSubmission = function() {

    var last_clicked, time_since_clicked;

    jQuery(this).bind('submit', function(event) {

        if(last_clicked) {
            time_since_clicked = jQuery.now() - last_clicked;
        }

        last_clicked = jQuery.now();

        if(time_since_clicked < 2000) {
            // Blocking form submit because it was too soon after the last submit.
            event.preventDefault();
        }

        return true;
    });
};

Kern3l को संबोधित करने के लिए, टाइमिंग विधि मेरे लिए केवल इसलिए काम करती है क्योंकि हम सबमिट बटन के डबल-क्लिक को रोकने की कोशिश कर रहे हैं। यदि आपके पास सबमिट करने के लिए बहुत लंबा प्रतिक्रिया समय है, तो मैं एक स्पिनर के साथ सबमिट बटन या फॉर्म को बदलने की सलाह देता हूं।

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


2
आप सही हे। आप दूसरे तरीके से जा सकते हैं - तुरंत अक्षम करें और फिर, कुछ लंबे समय के बाद, फिर से सक्षम करें। दोहरे क्लिकों को रोकता है, पुन: सबमिट करने की अनुमति देता है, लेकिन फिर भी लैगिंग उपयोगकर्ताओं के लिए अमान्य पुनः सबमिट की अनुमति देता है।
Ctrl-C

8

कृपया, jquery-safeform प्लगइन देखें।

उपयोग उदाहरण:

$('.safeform').safeform({
    timeout: 5000,  // disable next submission for 5 sec
    submit: function() {
        // You can put validation and ajax stuff here...

        // When done no need to wait for timeout, re-enable the form ASAP
        $(this).safeform('complete');
        return false;
    }
});

4

... लेकिन किसी भी POST डेटा के साथ फॉर्म जमा नहीं किया जाता है, इसे शामिल करना चाहिए।

सही बात। अक्षम प्रपत्र तत्व नाम / मान सर्वर पर नहीं भेजे जाएंगे। आपको उन्हें पठनीय तत्वों के रूप में सेट करना चाहिए ।

इसके अलावा, एंकर को इस तरह से अक्षम नहीं किया जा सकता है। आपको उनके HREF (अनुशंसित नहीं) हटाने या उनके डिफ़ॉल्ट व्यवहार (बेहतर तरीके) को रोकने की आवश्यकता होगी, जैसे:

<script type="text/javascript">
$(document).ready(function(){
    $("form#my_form").submit(function(){
      $('input').attr('readonly', true);
      $('input[type=submit]').attr("disabled", "disabled");
      $('a').unbind("click").click(function(e) {
          e.preventDefault();
          // or return false;
      });
    });
</script>

@ एडम, हाँ, किसी भी संलग्न क्लिक हैंडलर में आग लग जाएगी। मुझे लगा कि आप उन्हें संशोधित होने से रोकना चाहते हैं?
करीम May३

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

@ एडम - नहीं, ऐसा नहीं होगा। मैंने अपना उदाहरण दिया है, मैंने जोड़ा है $('input[type=submit]').attr("disabled", "disabled");लेकिन मेरा पसंदीदा तरीका है onclick="this.disabled = 'disabled'"सबमिट सबमिट पर क्लिक करना।
करीम79

@ karim79 मैंने वह कोशिश की, लेकिन फिर मैं जो सबमिट बटन क्लिक कर रहा हूं वह POST में शामिल नहीं है। मुझे यह निर्धारित करने के लिए POST में शामिल होना चाहिए कि कौन सा बटन क्लिक किया गया था
एडम

मुझे पता है कि आपने 'a' के लिए केवल क्लिक इवेंट को अनबैलेंस किया है, लेकिन केवल $ ('a') का उपयोग क्यों नहीं किया है। क्लिक करें (फ़ंक्शन (e) {e.preventDefault (); //; या गलत लौटें;}); ?
फैबियो

4

नाथन लॉन्ग के दृष्टिकोण में सुधार की संभावना है । आप इस एक के साथ पहले से सबमिट किए गए फ़ॉर्म का पता लगाने के लिए तर्क को बदल सकते हैं:

var lastTime = $(this).data("lastSubmitTime");
if (lastTime && typeof lastTime === "object") {
    var now = new Date();
    if ((now - lastTime) > 2000) // 2000ms
        return true;
    else
        return false;
}
$(this).data("lastSubmitTime", new Date());
return true; // or do an ajax call or smth else

1
पृथ्वी पर आप इस दृष्टिकोण के लिए टाइमर का उपयोग क्यों करेंगे?
बोबार्ट सिप

4

नाथन का कोड लेकिन jQuery के मान्य प्लगइन के लिए

यदि आप jQuery Validate plugin का उपयोग करते हैं, तो उनके पास पहले से ही लागू हैंडलर जमा है, और उस स्थिति में एक से अधिक को लागू करने का कोई कारण नहीं है। कोड:

jQuery.validator.setDefaults({
  submitHandler: function(form){
    // Prevent double submit
    if($(form).data('submitted')===true){
      // Previously submitted - don't submit again
      return false;
    } else {
      // Mark form as 'submitted' so that the next submit can be ignored
      $(form).data('submitted', true);
      return true;
    }
  }
});

आप आसानी से } else {इनपुट और / या सबमिट बटन को निष्क्रिय करने के लिए -ब्लॉक के भीतर इसका विस्तार कर सकते हैं ।

चियर्स


2

मैंने इस पोस्ट के विचारों का उपयोग करके एक समाधान तैयार किया है जो कि एटजैको के संस्करण के समान है।

 jQuery.fn.preventDoubleSubmission = function() {

    var last_clicked, time_since_clicked;

    $(this).bind('submit', function(event){

    if(last_clicked) 
      time_since_clicked = event.timeStamp - last_clicked;

    last_clicked = event.timeStamp;

    if(time_since_clicked < 2000)
      return false;

    return true;
  });   
};

इस तरह का उपयोग करना:

$('#my-form').preventDoubleSubmission();

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

यह शायद थोड़ा सा उपसर्ग किया जा सकता है क्योंकि यह फैंसी नहीं है।


2

यदि AJAX का उपयोग किसी फॉर्म को पोस्ट करने के लिए किया जाता है, तो सेट async: falseको क्लीयर करने से पहले अतिरिक्त सबमिट्स को रोकना चाहिए:

$("#form").submit(function(){
    var one = $("#one").val();
    var two = $("#two").val();
    $.ajax({
      type: "POST",
      async: false,  // <------ Will complete submit before allowing further action
      url: "process.php",
      data: "one="+one+"&two="+two+"&add=true",
      success: function(result){
        console.log(result);
        // do something with result
      },
      error: function(){alert('Error!')}
    });
    return false;
   }
});

3
<Code> asnyc: true </ code> को सेट करना एक बुरा तरीका है क्योंकि यह ब्राउज़र को तब तक फ्रीज करता है जब तक कि अनुरोध पूरा नहीं हो जाता है जो AJAX के सार को हरा देता है
एडविन एम

2

बूटस्ट्रैप 3 के लिए थोड़ा संशोधित नथन का समाधान। यह सबमिट बटन पर एक लोडिंग पाठ सेट करेगा। इसके अलावा यह 30 सेकंड के बाद टाइमआउट होगा और फॉर्म को फिर से सबमिट करने की अनुमति देगा।

jQuery.fn.preventDoubleSubmission = function() {
  $('input[type="submit"]').data('loading-text', 'Loading...');

  $(this).on('submit',function(e){
    var $form = $(this);

    $('input[type="submit"]', $form).button('loading');

    if ($form.data('submitted') === true) {
      // Previously submitted - don't submit again
      e.preventDefault();
    } else {
      // Mark it so that the next submit can be ignored
      $form.data('submitted', true);
      $form.setFormTimeout();
    }
  });

  // Keep chainability
  return this;
};

jQuery.fn.setFormTimeout = function() {
  var $form = $(this);
  setTimeout(function() {
    $('input[type="submit"]', $form).button('reset');
    alert('Form failed to submit within 30 seconds');
  }, 30000);
};

2

दो सबमिट बटन का उपयोग करें।

<input id="sub" name="sub" type="submit" value="OK, Save">
<input id="sub2" name="sub2" type="submit" value="Hidden Submit" style="display:none">

और jQuery:

$("#sub").click(function(){
  $(this).val("Please wait..");
  $(this).attr("disabled","disabled");
  $("#sub2").click();
});

2

सबमिट पर सरल काउंटर का उपयोग करें।

    var submitCounter = 0;
    function monitor() {
        submitCounter++;
        if (submitCounter < 2) {
            console.log('Submitted. Attempt: ' + submitCounter);
            return true;
        }
        console.log('Not Submitted. Attempt: ' + submitCounter);
        return false;
    }

और monitor()फॉर्म सबमिट करने पर फंक्शन को कॉल करें ।

    <form action="/someAction.go" onsubmit="return monitor();" method="POST">
        ....
        <input type="submit" value="Save Data">
    </form>

1

मैं इसी तरह के मुद्दों पर चल रहा हूं और मेरा समाधान इस प्रकार है।

यदि आपके पास कोई क्लाइंट साइड वैलिडेशन नहीं है, तो आप यहाँ दस्तावेज़ के रूप में जक्वेरी वन () विधि का उपयोग कर सकते हैं।

http://api.jquery.com/one/

यह हैंडलर को लागू करने के बाद निष्क्रिय कर देता है।

$("#mysavebuttonid").on("click", function () {
  $('form').submit();
});

यदि आप ग्राहक पक्ष सत्यापन कर रहे हैं जैसा कि मैं कर रहा था तो इसकी थोड़ी और मुश्किल है। उपरोक्त उदाहरण विफल सत्यापन के बाद आपको फिर से जमा नहीं करने देगा। इसके बजाय इस दृष्टिकोण का प्रयास करें

$("#mysavebuttonid").on("click", function (event) {
  $('form').submit();
  if (boolFormPassedClientSideValidation) {
        //form has passed client side validation and is going to be saved
        //now disable this button from future presses
        $(this).off(event);
   }
});

1

आप इसके द्वारा दूसरा सबमिट रोक सकते हैं

$("form").submit(function() {
        // submit more than once return false
        $(this).submit(function() {
            return false;
        });
        // submit once return true
        return true; // or do what you want to do
    });
});

0

मेरा समाधान:

// jQuery plugin to prevent double submission of forms
$.fn.preventDoubleSubmission = function () {
    var $form = $(this);

    $form.find('[type="submit"]').click(function () {
        $(this).prop('disabled', true);
        $form.submit();
    });

    // Keep chainability
    return this;
};

0

मेरे मामले में फॉर्म के ऑनसुबमिट में कुछ सत्यापन कोड था, इसलिए मैं नेथन लॉन्ग का जवाब देता हूं जिसमें ऑनसुबिट चेकपॉइंट शामिल है

$.fn.preventDoubleSubmission = function() {
      $(this).on('submit',function(e){
        var $form = $(this);
        //if the form has something in onsubmit
        var submitCode = $form.attr('onsubmit');
        if(submitCode != undefined && submitCode != ''){
            var submitFunction = new Function (submitCode);
            if(!submitFunction()){
                event.preventDefault();
                return false;
            }                   
        }

        if ($form.data('submitted') === true) {
            /*Previously submitted - don't submit again */
            e.preventDefault();
        } else {
          /*Mark it so that the next submit can be ignored*/
          $form.data('submitted', true);
        }
      });

      /*Keep chainability*/
      return this;
    };

0

सबमिट बटन बदलें:

<input id="submitButtonId" type="submit" value="Delete" />

सामान्य बटन के साथ:

<input id="submitButtonId" type="button" value="Delete" />

फिर क्लिक फ़ंक्शन का उपयोग करें:

$("#submitButtonId").click(function () {
        $('#submitButtonId').prop('disabled', true);
        $('#myForm').submit();
    });

और याद रखें कि जब निरर्थक हो तो पुनः सक्षम करें बटन:

$('#submitButtonId').prop('disabled', false);

0

मैं सूचक-घटनाओं के अच्छे पुराने जमाने के सीएसएस ट्रिक पर विश्वास नहीं कर सकता: अभी तक किसी का उल्लेख नहीं किया गया है। मैं एक अक्षम विशेषता जोड़कर एक ही मुद्दा था, लेकिन यह वापस पोस्ट नहीं करता है। नीचे की कोशिश करें और अपने सबमिट बटन की आईडी के साथ #SubmitButton बदलें।

$(document).on('click', '#SubmitButton', function () {
    $(this).css('pointer-events', 'none');
})

उपयोगकर्ता द्वारा Enterकुंजी को हिट करने पर यह फॉर्म सबमिशन को नहीं रोकता है ।
सुधार

0

सिर्फ यही क्यों नहीं - यह फॉर्म सबमिट करेगा लेकिन सबमिट बटन को भी अक्षम कर देगा,

   $('#myForm').on('submit', function(e) {
       var clickedSubmit = $(this).find('input[type=submit]:focus');
       $(clickedSubmit).prop('disabled', true);
   });

इसके अलावा, यदि आप jQuery Validate का उपयोग कर रहे हैं, तो आप इन दो पंक्तियों को नीचे रख सकते हैं if ($('#myForm').valid())


0

यह कोड बटन लेबल पर लोडिंग प्रदर्शित करेगा, और बटन को सेट करेगा

अक्षम राज्य, फिर प्रसंस्करण के बाद, पुनः सक्षम करें और मूल बटन पाठ वापस लौटाएं **

$(function () {

    $(".btn-Loading").each(function (idx, elm) {
        $(elm).click(function () {
            //do processing
            if ($(".input-validation-error").length > 0)
                return;
            $(this).attr("label", $(this).text()).text("loading ....");
            $(this).delay(1000).animate({ disabled: true }, 1000, function () {
                //original event call
                $.when($(elm).delay(1000).one("click")).done(function () {
                    $(this).animate({ disabled: false }, 1000, function () {
                        $(this).text($(this).attr("label"));
                    })
                });
                //processing finalized
            });
        });
    });
    // and fire it after definition
});

-1

मैंने एक बहुत ही समान समस्या हल की है:

$("#my_form").submit(function(){
    $('input[type=submit]').click(function(event){
        event.preventDefault();
    });
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.