锁定保存按钮一段时间

时间:2010-06-03 15:00:15

标签: php jquery mysql

我正在使用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

2 个答案:

答案 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)

我不会在一段时间内禁用它,而是在完成命令时使用回调来启用按钮,并在启动命令后禁用它。我还记得在发生错误时启用它,向用户弹出一个错误,表示失败并且重复失败可能意味着系统处于脱机状态或出错。