目前我正在做一个项目,该项目需要为特定的帖子提交一个"投票"表单。目前,点击提交按钮就像它应该的那样工作,尽管如果按钮被点击了不止一次,它确实是这样做的——提交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');