【问题标题】:Disable button after clicked PHP单击 PHP 后禁用按钮
【发布时间】:2014-08-03 09:30:23
【问题描述】:

如何在单击按钮后禁用它。并让它保持禁用状态。我尝试使用.prop('disabled', true);,虽然它禁用了按钮,但是当我刷新页面时,按钮再次变为可点击。此外,如果我有它的列表,它也会禁用我不想要的其他按钮。有什么办法吗?

<table>
<tr>
<td id="milestone_1"> 
</td>
<td id="percentage_1">
</td>
<td>
<form id="pay1">
<input type="hidden" class="id_hidden" name="id_hidden">
<input type="hidden" class="paid_hidden" name="paid_hidden">
<input type="hidden" class="budget_hidden" name="budget">
<input type="hidden" id="percent1" name="percent">
<input type="submit" name="pay1" value="Pay">
</form>
</td>
</tr>

<tr>
<td id="milestone_2">
</td>
<td id="percentage_2">
</td>
<td>
<form id="pay2">
<input type="hidden" class="id_hidden" name="id_hidden">
<input type="hidden" class="paid_hidden" name="paid_hidden">
<input type="hidden" class="budget_hidden" name="budget">
<input type="hidden" id="percent2" name="percent">
<input type="submit" name="pay2" value="Pay">
</form>
</td>
</tr>

<tr>
<td id="milestone_3">
</td>
<td id="percentage_3">
</td>
<td>
<form id="pay3">
<input type="hidden" class="id_hidden" name="id_hidden">
<input type="hidden" class="paid_hidden" name="paid_hidden">
<input type="hidden" class="budget_hidden" name="budget">
<input type="hidden" id="percent3" name="percent">
<input type="submit" name="pay3" value="Pay">
</form>
</td>
</tr>

</table>


$("#pay1").submit(function(){
    $.ajax({
        type: "GET",
        url: "pay.php",
        data: $("#pay1").serialize(),
        success: function(data){

            $("#add_success").html(data);
            $("#add_err").html("");

        }
    });
    return false
});
$("#pay2").submit(function(){
    $.ajax({
        type: "GET",
        url: "pay.php",
        data: $("#pay2").serialize(),
        success: function(data){

            $("#add_success").html(data);
            $("#add_err").html("");

        }
    });
    return false
});
$("#pay3").submit(function(){
    $.ajax({
        type: "GET",
        url: "pay.php",
        data: $("#pay3").serialize(),
        success: function(data){

            $("#add_success").html(data);
            $("#add_err").html("");

        }
    });
    return false
});

【问题讨论】:

  • JS 仅适用于当前页面元素。您应该禁用服务器端的按钮。所以页面加载静态禁用项目。并且影响其他按钮可能是因为相同的标识符(id,name,class,...)所以 jQuery 找到多个元素。

标签: javascript php jquery button


【解决方案1】:

我建议您使用 cookie 来保存用户状态或数据。
简单地说,您可以通过document.cookie 对象在纯 javascript 中使用 cookie,

javascript 创建 cookie 示例代码:

document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";

读取 cookie:

var x = document.cookie;

你也可以使用this jQuery 插件来处理它

cookie 在 PHP 中非常方便,因此您可以通过$_COOKIE 全局 php 变量访问 cookie 数据。
就个人而言,我建议您将标签选择器保留在 javascript 变量中,并在 dom ready 上禁用它们以供以后的其他请求使用。

更新

为了更安全的实施,您可以使用服务器端解决方案,在这种情况下,您可以使用 PHP 会话来保存数据以向用户显示或不显示元素。

【讨论】:

  • 就像付款一样,一旦支付了该部分,它将不再支付。所以我不认为 cookie 在我的情况下会起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 2011-08-19
相关资源
最近更新 更多