停用提交,但先提交表单

时间:2016-04-09 01:54:44

标签: javascript php jquery mysql mysqli

<script>function lockoutSubmit(button) {
    var oldValue = button.value;

    button.setAttribute('disabled', true);
    button.value = '...processing...';

    setTimeout(function(){
        button.value = oldValue;
        button.removeAttribute('disabled');
    }, 3000)
}</script>

这就是我用于禁用的脚本(在Stack Overflow上找到)。

这是我的更新条件:

<?php
    if(isset($_POST['coin'])){

        $coin="UPDATE users SET coins = coins + 100 WHERE user_id = '$user_id'";

        $coin_in=mysqli_query($conn,$coin);
    }?>

这是我添加onclick到输入的地方:

<form action="" method="post">
 <input type="submit" value="Get Coins" name="coin" onclick="lockoutSubmit(this)" >
 </form>

此脚本在单击后禁用该按钮,这是我想要的,但问题是,当我从onclick条件将UPDATE添加到输入if时,它不起作用。基本上当我点击提交时,没有任何反应,它只会禁用它。我是JavaScript的新手,不知道是不是可以将它组合起来......任何想法/提示?

2 个答案:

答案 0 :(得分:1)

如果您将错误返回给onclick,则表示无法提交表单。

只需将return false添加到 lockoutSubmit(),然后在延迟后手动提交document.getElementById("myForm").submit();

答案 1 :(得分:0)

你也可以这样做

<form name="myform" action="formaction" method="post"> 

<input type="submit" value="Get Coins" name="coin" onclick="document.forms['myform'].submit();lockoutSubmit(this)" /> </form>

或者如果你知道CSS可以制作锚点按钮

<a="JavaScript: document.forms['myform'].submit()" on click="lockoutSubmit(this);" />