【问题标题】:disable button not working in jquery and ajax禁用按钮在 jquery 和 ajax 中不起作用
【发布时间】:2019-03-08 19:52:31
【问题描述】:

我想在用户单击 HTML 表单中的提交按钮后禁用提交按钮。但是表单会直接重定向到下一页而不禁用按钮。

理想的顺序是:

  1. 用户点击提交按钮
  2. 已执行验证
  3. 提交按钮禁用
  4. 表单数据提交到数据库/电子表格
  5. 用户被重定向到感谢页面

使用以下代码,唯一的问题是提交按钮没有被禁用,其他一切都正常工作。请提出修复代码的替代方法。我正在使用在 jquery 1.4.1 上运行的 WordPress。所以,$input.prop('disabled', true) 也不起作用

HTML:

    <form id="test-form" method="post" name="test-form" action="">
<div>
<input class="input-field" name="Name" required type="text" placeholder="Enter name" />
</div>

<div>
<input class="input-field" name="Phone" required type="number" placeholder="Enter number" />
</div>

<div><button id="submit-form" class="btn" type="submit" name="submit-form">Submit</button></div>
</form>

JQUERY

var $form = $('form#test-form');
url = 'https://abcd';


 $form.submit(function(e) {
  $('submit-form').attr('disabled', 'disabled');
  var jqxhr = $.ajax({
    url: url,
    method: "GET",
    dataType: "json",
    data: $form.serializeObject()
  }).success(function() {
            location.replace("/thank-you/");
        });
e.preventDefault();
      });
    });

【问题讨论】:

  • $('submit-form') 应该是 $('#submit-form')。投票结束是一个错字。
  • 还要注意 jQuery 1.4.1 已经大量过时了。你真的需要更新它。
  • 如果您只是要在 AJAX 返回时立即重定向用户,那么您真的不需要为 AJAX 操心。 AJAX 的全部意义在于允许用户停留在同一页面上。您可以放弃 AJAX,正常提交表单并让服务器发出重定向命令。
  • P.S.如果您声称您的 jQuery 版本依赖于 WordPress,那么您的 WordPress 安装也必须非常过时。
  • 嗨@Hackerz,你在使用 jquery-validation 插件吗?

标签: jquery html ajax forms button


【解决方案1】:

给你的 id 是错误的。试试这个

$(function(){
var $form = $('#test-form');
url = 'https://abcd';
 $form.submit(function(e) {
    e.preventDefault();    
  $('#submit-form').attr('disabled', 'disabled');
  var jqxhr = $.ajax({
    url: url,
    method: "GET",
    dataType: "json",
    data: $form.serializeObject()
  }).success(function() {
            location.replace("/thank-you/");
        });
      });
      });

【讨论】:

  • 这也没有禁用按钮。如果在成功提交和验证后立即禁用按钮,用户将无法一次又一次地提交表单。我仍在尝试调试该问题。感谢您的帮助。
  • 嗨@Hackerz,请试试这个插件javascript-coder.com/jsform/…
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多