禁用表单提交可防止发送按钮属性
Disabling form submit prevents button attribute from being sent
我有一个带有两个提交按钮的表单。我使用'name'属性来查看哪个被点击以提交表单。我想在提交时禁用按钮使用jquery与以下功能:
$(document).on('submit', '.js-form', function(e) {
$(this).find('input[type=submit]').prop('disabled', true);
});
问题是这样做后,我发现名称属性不再被发送。我已经检查了发送的请求(在网络选项卡- chrome),它并没有被发送,即使在它以前被发送没有问题。
谁能告诉我为什么会这样,我该如何克服它?
谢谢
您应该通过捕获表单的状态来禁用表单提交。你可以通过在表单中添加一个类来实现这一点,如果它有这个类,那么就停止事件。
$(document).on('submit', '.js-form', function(e) {
if ($(this).hasClass('disabled')) {
// Form is disabled, stop the event
e.preventDefault();
e.stopPropagation();
return false;
} else {
// Allow first submit and add class to stop subsequent
$(this).addClass('disabled');
}
});
这不会清除或禁用任何按钮,允许所有数据通过。
表单提交后不要禁用提交按钮。浏览器已经在技术上为您处理了这个问题。一旦提交了表单,浏览器就不会接受任何其他成功的表单提交。当然,用户可以在页面加载之前单击不同的按钮,但它不会多次提交表单(除非使用ajax或其他解决方案)。
相关文章:
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 在jquerymobile中设置按钮css属性的动画
- 单击按钮时的窗口属性
- 如何使用按钮'的OnClientClick属性,以便在ASP.NET中运行一些多个JavaScript函数
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 在jquery中获取实际点击的按钮属性
- 通过选择dropdwon来更改按钮属性
- 通过 javascript 设置按钮属性
- YouTube嵌入式播放器将视频下载为MP4按钮属性
- JavaScript 启用新的 HTML5 按钮属性:formaction、formmethod
- 设置 ASP.NET 按钮属性客户端和读取属性值服务器端
- jQuery改变按钮属性
- 按钮属性"disable"不工作
- 禁用表单提交可防止发送按钮属性
- 在页面重新加载后保留按钮属性
- 更改隐藏/显示画布上的按钮属性
- Mozilla自动添加disabled=""作为按钮属性