【问题标题】:Disable submit button on click but after submission jQuery / PHP单击时禁用提交按钮,但在提交 jQuery / PHP 之后
【发布时间】:2013-06-16 03:21:33
【问题描述】:

目前我正在开展一个项目,该项目需要提交表格以对特定帖子进行“投票”。目前单击提交按钮可以正常工作,尽管如果多次单击该按钮,它确实会这样做 - 多次提交 POST 变量,导致它们能够多次“投票”该项目一组点击。

我查看了所有能解决此问题的 jQuery 代码示例,但没有任何效果。它可以禁用该按钮,但之后抓取数据并运行查询的重定向页面返回错误,因为没有提交任何内容。简而言之,它似乎禁用了按钮,但同时禁用了提交信息。

这是我的 jQuery 代码:

$('#vote').submit(function(){
    $(this).children($btn).attr('disabled', true);
    return true;
});

任何帮助都会很棒。 谢谢。

【问题讨论】:

    标签: php jquery post


    【解决方案1】:

    使用 jquery .one

    说明: 将处理程序附加到元素的事件。每个元素最多执行一次处理程序。

     $(document).one("click","#vote",function(){
            $(this).children($btn).attr('disabled', true);
            return true;
        });
    

    【讨论】:

    • 如果我真的想重新提交表格怎么办?
    • @passionateCoder 您无法立即执行此操作。您必须刷新页面并重试。要使用多个您想使用 .on 而不是 .one
    • 我不确定如何充分利用这段代码。你能举一个有效的例子吗?感谢您的帮助。
    • 不,不幸的是,这仍然无法正常工作。还有其他建议吗?
    【解决方案2】:

    您最好的选择可能是只允许一次提交并以其他方式调整按钮外观:

    var submitted = false;
    $('#vote').submit(function(){
      if(submitted) {
        // cancel additional submits
        return false;
      }
    
      submitted = true;
      $(this).children($btn).val('Please wait...');
    });
    

    【讨论】:

      【解决方案3】:

      您可以添加click event。不要使用提交按钮,而是使用按钮单击事件。

      代码可能如下所示

      $($button).click(function(){
      $(this).attr("disabled","disabled");
      $($form).submit();
      });
      

      【讨论】:

        【解决方案4】:

        这里可以使用jquery的onoff

        例如提交后,可以完全禁用点击

        $('#vote').off('click');
        

        然后根据需要切换回来

        $('#vote').on('click');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-10-22
          • 1970-01-01
          • 1970-01-01
          • 2016-05-31
          • 2016-01-21
          • 2016-04-03
          • 2011-03-22
          相关资源
          最近更新 更多