初步问题:
由于与外部API的连接创建新订单(orders#create
)需要几秒钟而且我无能为力。所以我需要以某种方式告诉用户,该页面实际上在做什么。
这是我用于验证的js代码:
$(document).ready(function(){
$('.submit-order').on('click', function(e){
var success = true;
$("div.text-danger").remove();
// a lot of validations, which set success to false if they fail
if (success === true) {
e.preventDefault();
$('.submit-order').find('input').val('Please hold on a little bit');
}
});
});
如果省略e.preventDefault()
,则(新)文本仅显示一瞬间,然后恢复为"继续付款"。
我得到this和this SO答案,我真的需要包括它。然后,文字保持"请保持一点点"。但是,当然,现在,没有创建订单。
如何在后端工作时实现简单的用户通知?我偶然发现this answer here,但是真的有必要让一个复杂的ajax调用仅用于某些文本更改吗?
更新#1: 我并不是真的认为,我的问题与this一个重复,因为已知的解决方案对我的案例不起作用。
我的解决方案: 经过研究,我偶然发现了数据禁用 - 用'选项,这正是我所需要的。现在我的提交按钮(Rails,Haml标记)看起来像这样:
.submit-order
=f.submit "Proceed to payment", data: { "disable-with" => "Please hold on a little bit"}, class: "btn btn-success-mod-uzhindoma margin-bottom-60"
也许对某人有所帮助。