代码之家  ›  专栏  ›  技术社区  ›  chrizonline

单击“禁用提交”按钮

  •  1
  • chrizonline  · 技术社区  · 16 年前

    我想禁用提交按钮时,onclick。我可以禁用按钮,但我不能提交后值到php。

    8 回复  |  直到 16 年前
        1
  •  5
  •   Community Mohan Dere    9 年前
    <input type="submit" onclick="this.disabled = true" value="Save"/>
    

    或参考号 this

        2
  •  3
  •   Lèse majesté    16 年前

    如果禁用输入,则其值自然不会包含在表单数据中。你需要禁用这个按钮 你服从。如果将回调绑定到 onclick ,然后运行 表单提交。

    jQuery查询:

    $(document).ready(function() {
        $(document).unload(function() {
            $('#submit-btn').attr('disabled', 'disabled');
        });
    });
    

    常规JS:

    document.onunload = disableSubmit;
    function disableSubmit() {
        /* disable the submit button here */
    }
    

    基本上,不是绑定到submit按钮的 单击 document.onunload ),一旦提交表单并开始离开页面,就会被激发。

        3
  •  3
  •   Jonathan Calb    14 年前

    我用简单的jQuery解决了这个问题。代码在单击时删除按钮,然后附加假按钮或类似“加载..”的文本,最后发送表单。

    HTML格式:

    <div class="holder"><input type='submit' value='ACCEPT' class='button'></div>
    

    jQuery查询:

    $('.button').click(function() {
            $('.button').remove();
            $('.holder').append("//fake input button or whatever you want.");
            $('.form').submit();
        });
    

    与其他方法(如卸载)不同,按钮会在单击并发送表单的瞬间更改。我认为用沉重的形式是一个更好的做法。

        4
  •  2
  •   Anton    15 年前

    使用 jQuery查询 ,添加返回false的onClick处理程序:

    <input type="submit" value="Submit" onClick="$(this).click(function() {return false;});"/>
    
        5
  •  1
  •   chrizonline    16 年前

    我在网上找到了另一个选择。我做的是创建一个假禁用和隐藏按钮。当实际的按钮被点击,我会隐藏它,并显示假禁用按钮。

    实际按钮:

    $onclick = "
    var boolconfirm = confirm('$strconfirmattempt');
    if(boolconfirm==true){
    finishattempt.style.display='none';
    finishattempt2.style.display='inline';
    }
    return boolconfirm;";
    

    echo "<input type=\"submit\" name=\"finishattempt\" value=\"submit\" onclick=\"$onclick\" />.
    <input type=\"submit\" id=\"finishattempt2\" name=\"finishattempt2\" value=\"submit\" style=\"display:none;\" DISABLED/>\n";
    
        6
  •  1
  •   DigitalZebra    16 年前

    <input type="hidden" id="hiddenField" value="default" />
    
    <input type="button" id="myButton" onclick="buttonClick();">
    
    function buttonClick()
    {
        document.myForm.myButton.disabled = true;
        document.myForm.hiddenField.value = "myButtonClicked";
    }
    

    我的PHP有些生疏,但是您可以访问隐藏字段,如下所示:

    if ($POST['hiddenField'] == "myButtonClicked")
    {
        // Click handling code here
    }
    
        7
  •  1
  •   Nic    16 年前

    为什么不创建一个隐藏的禁用提交按钮和一个活动提交按钮,然后单击Showthedisableandhideactive?我可以在jQuery中这样做,但是没有它我就没用了。伤心,嗯?

        8
  •  1
  •   Maya B Hack    7 年前

    下面是一个使用onsubmit而不是onlick的方法:

    上面写着:

    <script type='text/javascript'>
    function disableButtons()
    {
      $('input[type="submit"]').attr('disabled', true);
    }
    </script>
    

    然后是您的PHP(注意,issetpost不是针对submit按钮的,因为我们想禁用submit按钮)。

    if (isset($_POST['dothis'])) 
    {
    //CODE TO EXECUTE
    }
    

    <form method='post' action='' onsubmit='disableButtons()'>
    <input type='hidden' name='dothis' value=''>
    <input type='submit' value='Submit'></form>
    

    Onsubmit进入。 确保您的isset(PHP部分)是为一个与submit相关的输入,而不是submit按钮本身。您可以看到,它是用PHP检查的隐藏值,而不是submit按钮,并且submit按钮被禁用。 通过这样做,您可以在不禁用PHP的情况下禁用submit按钮。

    推荐文章