0

submit_pdf 按钮将信息保存到数据库中并避免多次单击,我最初在单击后禁用了提交按钮,但是现在我想在超时 10 秒后重新启用该按钮。直到提交按钮被禁用的部分工作正常,但如果我尝试添加 10 秒的延迟,它似乎不起作用。如果你能帮助我解决这个问题,那将非常有帮助。

        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>';
4

2 回答 2

1

尝试使用setTimeout()

定义一个函数来启用按钮,然后设置一个 setTimeout():

function enableButton(){
    $('#myButton').attr("disabled", false);
}

setTimeout(enableButton, 10000);

确保将函数名称放在不带引号且不带“()”的位置

于 2012-11-20T11:09:05.900 回答
0

我建议编写 JS 代码(aleation 的代码是正确的)和这个 PHP 代码。

PHP(将时间存储在会话变量中):

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 代码。

于 2012-11-20T12:01:32.053 回答