【问题标题】:Disable submit button once the user submits the form用户提交表单后禁用提交按钮
【发布时间】:2016-10-24 22:26:32
【问题描述】:

我正在使用 PHP 和 MySQL 提交带有以下代码的表单,并使用 PHP 中的 isset 函数将值提交到数据库。

<div class="display">
    <form action="" method="POST">
        <div>
            <input type="text" name="name" placeholder="Your Name" required="required">
        </div>
        <div>
            <input type="text" name="phone" id="phone" placeholder="Mobile" required="required" onblur="check();">
            <br/>
            <span id="e_mobile"></span>
            <?php if(isset($_GET["r"])){ ?><p>Invalid number; must be ten digits. Please submit your query again</p><?php } ?>
        </div>
        <div>
            <input type="text" name="landline" id="landline" placeholder="Alternate Number" required="required" onblur="check1();">
            <br/>
            <span id="e_landline"></span>
        </div>
        <div>
            <input type="email" name="email" placeholder="Email" required="required">
        </div>
        <div>
            <input type="text" name="address" placeholder="Your Address" required="required">
        </div>
        <div>
            <input type="hidden" value="0" name="salesid"/>
        </div>
        <input type="submit" name="submit" value="Submit">
    </form> 
</div>

现在我想一旦用户点击提交按钮,一旦按钮应该冻结;到目前为止,如果用户多次(有意或无意地)单击提交按钮,则在数据库中多次提交相同的信息。

遇到这种情况怎么办?

【问题讨论】:

  • 在这种情况下使用名为 disabled 的属性....
  • 这将满足您的要求 &lt;input type="submit" name="submit" value="Submit" onclick="javascript: this.disabled = true;"/&gt; 但我认为这不是处理这种情况的方法(防止重新提交表单)。

标签: javascript php mysql


【解决方案1】:

用 JQuery 试试:

首先在表单中添加一个 ID

<form action="" method="POST" id="form">

之后添加脚本:

<script type="text/javascript">
$(document).ready(function() {
    $("#form").submit(function(e){
        $("input[type='submit']").attr("disabled","disabled");
    });
});

</script>

【讨论】:

    【解决方案2】:

    您可以添加 PHP Captcha 以防止用户再次点击。

    请查看以下两个包含演示的网址。

    1. http://www.w3schools.in/php/captcha/
    2. http://99webtools.com/blog/php-simple-captcha-script/

    【讨论】: