submit_pdf按钮将信息保存到数据库中并避免多次点击,我最初在一次点击后禁用了提交按钮,但是现在我想在超时10秒后重新启用按钮。提交按钮被禁用的部分工作正常,但如果我尝试添加10秒的延迟,它似乎无法正常工作。如果你可以帮我解决这个问题,那将非常有用。 / p>
echo ' <script language="JavaScript" type="text/javascript">
//<![CDATA[
window.open(\'./index_pdf.php?'.$query_string.'\',\'Warehouse_ST\',\'location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no\');
id_form.submit_pdf.disabled=true;
window.alert("Data is stored in the database, Please do no click on Submit again without changing any information");
window.addEvent(\'domready''\',function()
{
var subber = $_REQUEST["submit_pdf"];
subber.addEvent( \'click' ,function() '
{
subber.set( \'value','Submitting...''\' ).disabled = true;
(function() { subber.disabled = false; subber.set(\'value','submit_pdf'\'); }).delay(10000); // how much time? 10 seconds
});
});
//]]>
</script>';
答案 0 :(得分:1)
尝试使用setTimeout()
定义一个启用按钮的函数,然后设置一个setTimeout():
function enableButton(){
$('#myButton').attr("disabled", false);
}
setTimeout(enableButton, 10000);
确保将函数名称不加引号而不使用“()”
答案 1 :(得分:0)
我建议编写JS代码(aleation的代码是正确的)和这个PHP代码。
PHP(将时间存储在会话var中):
session_start(); //At the beginning of the PHP file
define("TIMEOUT", 10); //10 sec
//Check timeout
if (isset($_SESSION['expire'])) {
if ($_SESSION['expire']-time()>TIMEOUT) {
unset($_SESSION['expire']);
}
}
//Allow to do submit after 10 sec
if (!isset($_SESSION['expire'])) {
$_SESSION['expire']=time();
//Your submit code
}
这是因为用户可以操纵JavaScript和HTTP消息,但是他/她无法操纵php代码。