【问题标题】:Disable Jquery submit button once submitted提交后禁用 Jquery 提交按钮
【发布时间】:2016-08-28 09:14:15
【问题描述】:

我想在表单提交后禁用提交按钮。这意味着在用户单击提交后,提交按钮不应该是可点击的。这意味着我希望提交按钮即使在刷新后也保持禁用状态

; (function ($) {

    $.fn.tpFormDialogCustom = function (method) {

        var self = this;

        var dialogButtons = [
          {
              text: "Submit and Email",
              id: "tpFormDialog_btnSubmit",
              click: submitandmailTpFormDialog
          },


function submitandmailTpFormDialog() {
  if(CheckValidate()) {
    commonDialogs.showError(ExampleMessages.JournalError);
  } else {
    commonDialogs.showConfirm(ExampleMessages.ConfirmEmail, function() {
      try {
        commonDialogs.showProgress(ExampleMessages.SubmitAndEmail);
        var o = getOptions();
        var form = $(o.form);
        form.ajaxSubmit({
          success: handleEmailResponse,
          beforeSerialize: function($form, options) {
            if(!$("#SubmitBtn", $form).length) {
              $('select.required', $form).prop('disabled', false);
              $form.append("<input id='SubmitBtn' type='hidden' name='From' value='Submit' />");
            }
          }
        });
      } catch(e) {
        commonDialogs.showError();
      }
    });
  }
}


function handleEmailResponse(data) {
            $('#tpFormDialog_btnSubmit').prop("disabled", true);
            commonDialogs.hideProgress();
            var o = getOptions();
            if (data.IsSuccess) {
                commonDialogs.showAck(ExampleMessages.ConfirmSendEmail);
                closeTpFormDialog();
                o.table.refresh();
            } else {
                var errors = data.ResponseModel;
                if (typeof (errors) === 'string') {
                    commonDialogs.showError(errors);
                } else {
                    helpForValidation.showErrors(errors);
                }
            }
        };

【问题讨论】:

  • 我通常会隐藏我的提交按钮,点击时不显示任何内容,并将它们替换为“感谢您与我们联系”类型的消息。

标签: javascript jquery


【解决方案1】:

您可以通过向提交按钮添加禁用属性来禁用提交按钮。

$('input:submit').click(function(){
    console.log("Form is submiting.....");
    $('input:submit').attr("disabled", true);
});

演示:https://jsfiddle.net/Prakash_Thete/6qqgszs4/

【讨论】:

    【解决方案2】:

    您应该在ajax success 上执行此操作,以便在error 的情况下用户可以重新提交表单。 在您的情况下,它将位于 handleEmailResponse 函数内。

    function handleMailResponse(){
        $('#btnSubmitId').prop("disabled", true);
    
        /* the rest of your code */
    }
    

    【讨论】:

    • 嗨,我将它添加到了句柄邮件响应中,但它似乎不起作用。更新后的答案位于顶部。
    • $('tpFormDialog_btnSubmit').prop("disabled", true);应该是 $('#tpFormDialog_btnSubmit').prop("disabled", true);如果声明为 id ,则带有哈希 #
    • 添加了#。还是行不通。我希望提交按钮在刷新后保持禁用状态。
    • 如果按钮在刷新后被禁用,用户将如何删除项目??这没有任何意义
    猜你喜欢
    • 2012-11-16
    • 2013-06-11
    • 2023-03-16
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多