2010-07-06 113 views
1

我想在onc​​lick时禁用提交按钮。即时通讯能够禁用按钮,但我不能提交后值到PHP。onclick停用提交按钮

+6

您可能想要展示如何禁用它。用你提供的小信息来帮助你是不可能的。 – 2010-07-06 13:23:49

+0

很好看我以前发布的问题,我似乎无法在这里找到很好的答案。所有我看到的是人们在讨论ajax vs iframe。所以请告诉我那里的反馈。 – nuttynibbles 2010-07-06 14:13:28

+0

嗨丹尼尔,我会在下面显示我的代码。随时发表评论。 tks – nuttynibbles 2010-07-06 14:19:45

回答

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"; 
+0

更好地设置你的代码的格式。它不应该在这样一个难以理解的块中。一旦你格式化了它,突出显示代码并点击Ctrl + K,这会将所有内容缩进4个空格,使其显示为预格式化的源代码。 – 2010-07-06 14:26:16

+0

+1用于查找可行解决方案并格式化您的代码。尽管将来您可能希望将代码分解为更多行,以便不出现水平滚动条。但是,它已经比以前看起来好了100倍。 – 2010-07-06 14:40:18

+0

哈哈好吧。我会尝试下次更好地格式化它。 – nuttynibbles 2010-07-06 14:40:25

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

或ref this

+0

嗨,这个工程,但如果我wanan提交到PHP,POST值缺失。然而,我发现了一个替代解决方案,我将在下面发布。随时对此发表评论。 – nuttynibbles 2010-07-06 14:19:04

+0

如果已完成,则该值不会通过后期保留。 – Polaris878 2010-07-06 14:45:11

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),一旦表单被提交并且你开始离开页面,它就会被触发。

+0

添加一些关于你的代码是如何的jQuery和不老旧的JS – Polaris878 2010-07-06 14:42:04

+0

啊,是的,我已经提到,第一个片段是我的编辑中的一个jQuery,但我认为我意外删除它。 – 2010-07-06 14:49:53

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

为什么不创建禁用的提交按钮被隐藏,并积极提交按钮,显示的onClick残疾人和隐藏活跃?我可以在jQuery中做到这一点,但如果没有它,我就没用。伤心,呃?

1

使用jQuery的加入onclick处理程序返回false:

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

我用简单的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(); 
    }); 

与其他方法一样卸载在一个瞬间,你点击发送表单的按钮变化性差异。沉重的形式,我认为是一个更好的做法。