简体   繁体   中英

Submitting form through Ajax

My issue is simple -

I am submitting form using jquery and ajax . When the button is clicked the data is submitted to database .

Question - If the user clicks the submit twice there are two entries in the database . how can I solve this ?

I cannot use .one() because the submit button invokes validation function if the errors happen the data will not be submitted .So , user has to call the same function again .

Obviously I can do that with a variable on .success .but what is the best solution to this issue .

Thanks for the help.

Overlaying to prevent click is one way.

If you want something plug and play blockUI.js is good. All you need is

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

or you can just use .ajaxstart() and .ajaxstop( ) to overlay an element yourself to enable and disable the submit button.

You can disable the submit button once you have submitted the form. Any form can be submitted only using the Submit button. So:

$(form).submit(function () {
  $(this).find("input:submit").prop("disabled", true);
  // You can enable it back once the AJAX request is successful.
  $.ajaxSuccess(function () {
    $(form).find("input:submit").prop("disabled", false);
  });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM