禁用提交按钮点击,但提交后的jQuery / PHP


Disable submit button on click but after submission jQuery / PHP

目前我正在做一个项目,该项目需要为特定的帖子提交一个"投票"表单。目前,点击提交按钮就像它应该的那样工作,尽管如果按钮被点击了不止一次,它确实是这样做的——提交POST变量不止一次,导致他们能够在一组点击中多次为项目"投票"。

我看过每一个jQuery代码的例子,我能找到解决这个问题,但没有工作。它可以禁用按钮,但在此之后,获取数据并运行查询的重定向页面返回一个错误,因为没有提交任何内容。简而言之,它似乎禁用了按钮,但同时禁用了提交的信息。

这是我的jQuery代码:
$('#vote').submit(function(){
    $(this).children($btn).attr('disabled', true);
    return true;
});

任何帮助都太好了。谢谢。

使用jquery .one

Description: 为元素的事件附加一个处理程序。每个元素最多执行一次处理程序。

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

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

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

您可以添加一个click event。使用按钮点击事件代替提交按钮。

代码可能像这样

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

Jquery的on和off可以在这里使用。

例如,在提交后,你可以完全禁用点击
$('#vote').off('click');

如果你想的话,可以把它切换回

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