onclick禁用提交按钮

时间:2010-07-06 13:22:32

标签: php javascript

我希望在onclick时禁用提交按钮。我能够禁用按钮,但我无法将帖子值提交给php。

8 个答案:

答案 0 :(得分:5)

<input type="submit" onclick="this.disabled = true" value="Save"/>

或参考this

答案 1 :(得分:3)

如果禁用输入,则其值自然不会包含在表单数据中。您需要在提交后禁用按钮。如果您将回调绑定到onclick,那么它会在表单提交之前运行

你需要的是这样的东西:

<强> jQuery的:

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

常规JS:

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

基本上,这不是绑定到提交按钮的onclick事件,而是将禁用代码绑定到文档的卸载事件(document.onunload),一旦表单提交并且您开始离开,该事件就会被触发页面。

答案 2 :(得分:2)

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

<input type="submit" value="Submit" onClick="$(this).click(function() {return false;});"/>

答案 3 :(得分:2)

我用简单的jQuery解决了它。代码删除单击按钮,然后附加假按钮或类似“loading ..”文本,最后发送表单。

<强> 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 :(得分:1)

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

实际按钮:

$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";

答案 5 :(得分:1)

您可以使用隐藏字段来保存按钮的值并将该值从POST数据中拉出来:

<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
}

答案 6 :(得分:1)

为什么不创建一个隐藏的禁用提交按钮,以及一个活动的提交按钮,并且onClick显示已禁用并隐藏活动状态?我可以在jQuery中做到这一点,但没有它我就没用了。伤心,嗯?

答案 7 :(得分:1)

这是一种使用onsubmit而不是onlick的方法:

这在顶部:

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

然后使用您的PHP(请注意,isset post不适用于提交按钮,因为我们要禁用提交按钮)。

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

然后是HTML。

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

“提交”进入。 确保isset(PHP部分)用于与提交一起提供的输入,但不是提交按钮本身。您可以看到它是使用PHP检查的隐藏值,而不是Submit按钮,并且commit按钮被禁用了。 这样,您可以禁用提交按钮而无需禁用PHP。