多次提交
问题描述:
这是我的代码。 Onclick
的提交,如果答案正确,该值将被保存在数据库中。我想要的是,当我点击一个提交按钮时,表单中的所有其他提交按钮必须被禁用。我可以这样做吗?请帮帮我。多次提交
<textarea name="questn" id="questn" readonly="readonly" cols="45" rows="5"><?php echo $quest['questnId']; ?>. <?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'];?>" />
我使用提交而不是无线电的原因是我希望动态显示按钮上的值。
答
您可以在表格上写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');
}
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');
}
还要注意的是,你不需要在这种情况下
答
像这样将工作:
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>
...
您可能需要不禁用一个点击 – mplungjan 2012-07-09 05:44:26
我不想禁用一个点击。我可以这样做吗? – Avinash 2012-07-09 06:07:31
我已经更新了答案......看到第二种方法 – Kshitij 2012-07-09 06:20:46