【问题标题】:Disabled Button keeps re-enabling on form submission from another button禁用按钮不断重新启用从另一个按钮提交的表单
【发布时间】:2016-03-02 05:32:00
【问题描述】:

我在 FORM 标记中有三个提交按钮。它们都有 type="submit" 的类型,因为它们都以一种或另一种方式操作 MySQL 数据库。

  • 加载按钮
  • 转储按钮
  • 发布按钮

当点击发布按钮时,我正在禁用加载按钮:

<input type="submit" id="postpayment" name="postpayment" class="btn btn-primary" value="Post" onclick="document.getElementById('load').disabled='disable';">

但只要它禁用,它就会重新启用。我怎样才能让它保持禁用状态?我尝试过 JavaScript 和 JQuery,但没有任何效果。如果我将加载按钮的类型更改为 type="button",它将保持禁用状态。但是因为它是 type="submit",所以它会一直恢复为启用状态。这让我发疯!有人可以提供解决方案吗?谢谢。

更新:根据 Deavid 的建议,我已经这样做了:

<script>
    $(function () {
        $(#postpayment).click(function (event) {
            (#load).attr('disabled', true);
            event.preventDefault();
        }) 
    });
</script>

当点击发布按钮时,加载按钮应该被禁用并且默认操作被阻止。但这行不通。我知道这个 JQuery 函数是错误的,但我不知道如何修复它。

【问题讨论】:

  • 点击其他按钮后页面回发了吗?
  • 为了更好理解,请提供工作演示code sn-p,jsfiddle ...
  • 您需要 event.preventDefault() 来防止页面重新加载。重新加载时,所有变量都是新的。
  • 是的,发帖按钮发回。它必须。否则我将无法将数据插入到 db 表中。
  • 大卫:我该怎么做?可以如上图在onclick中使用吗?抱歉,我从来没有真正使用过 JQuery 和 JavaScript。谢谢。

标签: javascript php jquery html forms


【解决方案1】:

简单的解决方案是在您的 onclick 中添加 return false;

<input type="submit" id="postpayment" name="postpayment" class="btn btn-primary" value="Post" onclick="document.getElementById('load').disabled='disable';return false;">

但是,如果您想像在问题中那样使用 jQuery 附加点击处理程序,您可以这样做:

$(function () {
    $('#postpayment').click(function (event) {
        event.preventDefault();
        $('#load').prop('disabled', true);
        // Your ajax here!
    });
});

【讨论】:

  • 这确实使加载按钮处于禁用状态。但它也杀死了用于更新数据库的 Post 点击。我想我想做的事是不可能的。如果我希望发布点击更新数据库,我无法禁用加载按钮,如果我获得发布点击更新数据库,那么加载按钮将不会保持禁用状态。这么简单的概念却无法实现,让我惊叹不已。
  • 我想我明白你在说什么。您仍然需要提交表单。您的解决方案是在页面重新加载时禁用加载按钮,或者通过 ajax 发送帖子(首选)
  • 我不想让你为我编写代码,但是使用 ajax 是如何实现的呢?我现在很喜欢 Google =)
  • 请参阅This comment 了解如何通过 ajax 发布表单。但是,您还需要修改服务器端代码,以仅向您发送所需的响应,而不是页面的完整 HTML。
  • 我会调查一下,trex005。感谢您的提醒。
猜你喜欢
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2012-12-10
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2016-04-03
相关资源
最近更新 更多