2012-07-09 120 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