2010-07-06 155 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(); 
    }); 

與其他方法一樣卸載在一個瞬間,你點擊發送表單的按鈕變化性差異。沉重的形式,我認爲是一個更好的做法。