【问题标题】:Bootstrap disabled buttons not staying引导禁用按钮不保留
【发布时间】:2013-12-25 09:00:04
【问题描述】:

我想要做的是一旦单击按钮,禁用它,然后运行一个功能,然后一旦完成运行该功能,重新启用按钮,我正在尝试这个,但按钮只禁用一秒钟,然后在函数运行完成之前重新启用:

<button onclick='this.disabled=true;stop($vpsid)' type='button' class='btn btn-danger btn-sm'>Stop</button>

停止功能:

function stop(vpsid){
   $.post('functions.php', {"func":"shutdown", "vpsid":vpsid}, function(data) {
 alert(data);});
}

【问题讨论】:

  • 向我们展示您的stop() 函数,同时看看Bootstrap's docs 中的“加载状态”示例,它可能对您有用
  • @koala_dev 我已经编辑了帖子并添加了它。
  • 是否停止异步?
  • 您在哪里重新启用该按钮?如果您使用的是异步函数 (AJAX),则需要使用回调,否则代码不会“等待”调用完成
  • @koala_dev 我当前的回调会是警报(数据)吗?我将如何在这里重新启用按钮,我不知道按钮的 ID 或名称,因为按钮只是与 PHP 相呼应。

标签: javascript jquery twitter-bootstrap


【解决方案1】:

AJAX 调用是异步的,因此您需要使用回调函数。我建议你使用 jQuery 来附加点击处理程序并使用 Bootstrap 的按钮加载状态:

HTML

<button data-vpsid='$vpsid' type='button' data-loading-text='Stopping...' class='btn btn-danger btn-sm btn-stop'>Stop</button>

jQuery

$('.btn-stop').click(function () {
    $(this).button('loading');
    $.ajax('functions.php', {
        data: {
            "func": "shutdown",
            "vpsid": $(this).data('vpsid')
        },
        type: 'post',
        complete: function () {
            $(this).button('reset');
        },
        success: function (data) {
            alert(data);
        }
    });
});

【讨论】:

  • 我已经尝试过了,但它似乎不起作用。按下时按钮不执行任何操作。
  • 这里是其中一个按钮:&lt;button data-loading-text="Stopping..." data-vpsid="121" type="button" class="btn btn-danger btn-sm btn-stop"&gt;Stop&lt;/button&gt;
  • @user2484067 检查浏览器控制台是否有任何错误?
  • 是的,没什么。这是页面的链接:dev.cj.gy/cj/vz.php 我已经关闭了表格的 Ajax 刷新,以便您可以检查元素。
  • @user2484067 您在页面完成加载之前运行 jQuery 代码,将您的代码包装在文档就绪处理程序中:$(document).ready(function(...));
猜你喜欢
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
相关资源
最近更新 更多