Jquery更改.val()仅适用于瞬间

时间:2017-03-06 08:58:29

标签: javascript jquery ruby-on-rails ruby

初步问题: 由于与外部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(),则(新)文本仅显示一瞬间,然后恢复为"继续付款"。 我得到thisthis 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"

也许对某人有所帮助。

0 个答案:

没有答案