【发布时间】:2019-03-08 19:52:31
【问题描述】:
我想在用户单击 HTML 表单中的提交按钮后禁用提交按钮。但是表单会直接重定向到下一页而不禁用按钮。
理想的顺序是:
- 用户点击提交按钮
- 已执行验证
- 提交按钮禁用
- 表单数据提交到数据库/电子表格
- 用户被重定向到感谢页面
使用以下代码,唯一的问题是提交按钮没有被禁用,其他一切都正常工作。请提出修复代码的替代方法。我正在使用在 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