2012-07-09 166 views
0

這是我的代碼。 Onclick的提交,如果答案正確,該值將被保存在數據庫中。我想要的是,當我點擊一個提交按鈕時,表單中的所有其他提交按鈕必須被禁用。我可以這樣做嗎?請幫幫我。多次提交

<textarea name="questn" id="questn" readonly="readonly" cols="45" rows="5"><?php echo $quest['questnId']; ?>.&nbsp<?php echo $quest['question'];?></textarea> 
    <input type="submit" class="myButton" name="option" value="<?php echo $quest['optiona'];?>"/> 
    <input type="submit" class="myButton" name="option" value="<?php echo $quest['optionb'];?>" /> 
    <input type="submit" class="myButton" name="option" value="<?php echo $quest['optionc'];?>" /> 
    <input type="submit" class="myButton" name="option" value="<?php echo $quest['optiond'];?>" /> 

我使用提交而不是無線電的原因是我希望動態顯示按鈕上的值。

回答

1

您可以在表格上寫onsubmit事件禁用所有按鈕。

<form action="xyz.html" onsubmit="handleSubmit()"> 
    <input type="submit" name="option" value="b1"/> 
    <input type="submit" name="option" value="b2"/> 
    <input type="submit" name="option" value="b3"/> 
    <input type="submit" name="option" value="b4"/> 
</form> 



function handleSubmit(){ 
    var list = document.getElementsByName('option'); 

    for(var i=0;i<list.length;i++){ 
     list[i].disabled=true; 
    } 

    alert('all disabled'); 
}​ 

http://jsfiddle.net/4BDaU/1/


2)如果你不想禁用一個點擊,我會建議上的按鈕使用onclick致電handleSubmit。代碼將如下所示。

<input type="submit" name="option" onclick="handleSubmit(this)" value="b1"/> 
    <input type="submit" name="option" onclick="handleSubmit(this)" value="b2"/> 
    <input type="submit" name="option" onclick="handleSubmit(this)" value="b3"/> 
    <input type="submit" name="option" onclick="handleSubmit(this)" value="b4"/> 

你處理函數現在將接受this這將比在循環中排除。

function handleSubmit(current){ 
    var list = document.getElementsByName('option'); 

    for(var i=0;i<list.length;i++){ 
     if(list[i]!=current) // new condition added 
     list[i].disabled=true; 
    } 

    alert('all disabled'); 
}​ 

還要注意的是,你不需要在這種情況下

+0

您可能需要不禁用一個點擊 – mplungjan 2012-07-09 05:44:26

+0

我不想禁用一個點擊。我可以這樣做嗎? – Avinash 2012-07-09 06:07:31

+0

我已經更新了答案......看到第二種方法 – Kshitij 2012-07-09 06:20:46

0

像這樣將工作:

function disableEverything() { 
    var inp = document.getElementsByTagName('input'), l = inp.length, i; 
    for(i=0; i<l; i++) inp[i].disabled = true; 
} 

然後你就可以調用這個函數中的任何onClick提交按鈕。


爲什麼你不能使用單選按鈕?就像這樣:

<label><input type="radio" class="mybutton" name="option" value="<?=$quest['optiona']?>" /> <?=$quest['optiona']?></label> 
... 
+0

form我想要的選項,它的值將顯示在其添加onsubmit。我不認爲使用收音機我可以做到這一點 – Avinash 2012-07-09 06:01:56

+0

我不想禁用一個點擊。我可以這樣做嗎? – Avinash 2012-07-09 06:07:06

+0

你的代碼似乎工作,但我不能提交價值 – Avinash 2012-07-09 06:08:59