1

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

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

这是我的 jQuery 代码:

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

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

4

4 回答 4

3

使用 jquery .one

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

 $(document).one("click","#vote",function(){
        $(this).children($btn).attr('disabled', true);
        return true;
    });
于 2013-06-16T03:29:47.980 回答
1

Jquery 的 onoff都可以在这里使用。

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

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

如果你愿意,然后将其切换回来

$('#vote').on('click');
于 2013-06-16T03:33:36.820 回答
1

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

代码可能看起来像这样

$($button).click(function(){
$(this).attr("disabled","disabled");
$($form).submit();
});
于 2013-06-16T03:36:21.553 回答
1

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

var submitted = false;
$('#vote').submit(function(){
  if(submitted) {
    // cancel additional submits
    return false;
  }

  submitted = true;
  $(this).children($btn).val('Please wait...');
});
于 2013-06-16T03:31:11.430 回答