我正在使用php,mysql,jquery。
当用户点击保存时,我会转到后端并保存数据并显示响应。一旦显示成功我需要禁用保存按钮说1分钟。我该怎么做。?
这是ma代码
$(document).ready(function() {
if ($.cookie('<?php echo $userId ?><?php echo $product ?><?php echo $alias ?>agreedisabledTime') > 0) {
var remainingTime = (new Date()).getTime() - $.cookie('<?php echo $userId ?><?php echo $product ?><?php echo $alias ?>agreedisabledTime');
if (remainingTime < <?php echo $timer ?>) {
//if (remainingTime < 7200) {
$('#agree').attr('disabled', 'disabled');
$('#disagree').attr('disabled', 'disabled');
setTimeout(function() { $('#agree').attr('disabled', ''); }, remainingTime);
setTimeout(function() { $('#disagree').attr('disabled', ''); }, remainingTime);
}
}
$('#agree').click(function()
{
$('#response').show();
$.post('/all_include_files/increment.php',{update:'agree',product:"<?php echo $product?>",alias:"<?php echo $alias ?>"},function(data)
{
if(data.indexOf('ERROR') < 0)
{
$('#response').hide();
$('.agree_number').html(data);
alert('Thanks for your esteemed opinion');
$('#agree').attr('disabled', 'disabled');
$('#disagree').attr('disabled', 'disabled');
setTimeout(function() { $('#agree').attr('disabled', ''); }, "<?php echo $timer ?>");
setTimeout(function() { $('#disagree').attr('disabled', ''); }, "<?php echo $timer ?>");
$.cookie('<?php echo $userId ?><?php echo $product ?><?php echo $alias ?>agreedisabledTime', (new Date()).getTime());
}
else
{ alert(data); }
});
});
});
其中$ timer设置为120000
答案 0 :(得分:2)
禁用按钮1秒钟:
if (success) {
$('#buttonid').attr('disabled', 'disabled');
setTimeout(function() { $('#buttonid').attr('disabled', ''); }, 1000);
}
关于跟踪浏览器重新加载的编辑
您可以使用jQuery插件轻松访问Cookie:http://plugins.jquery.com/project/cookie
if (success) {
$('#buttonid').attr('disabled', 'disabled');
setTimeout(function() { $('#buttonid').attr('disabled', ''); }, 1000);
$.cookie('disabledTime', (new Date()).getTime());
}
然后在加载DOM时读取它:
$(document).ready(function() {
if ($.cookie('disabledTime') > 0) {
var remainingTime = (new Date()).getTime() - $.cookie('disabledTime');
if (remainingTime > 0) {
$('#buttonid').attr('disabled', 'disabled');
setTimeout(function() { $('#buttonid').attr('disabled', ''); }, remainingTime);
}
}
});
请注意,我没有对此进行测试,但您明白了
答案 1 :(得分:1)
我不会在一段时间内禁用它,而是在完成命令时使用回调来启用按钮,并在启动命令后禁用它。我还记得在发生错误时启用它,向用户弹出一个错误,表示失败并且重复失败可能意味着系统处于脱机状态或出错。