任何人都知道如何循环播放一组单选按钮并删除尚未检查过的按钮?
我要做的是设置一个测验,一旦你提交了测验,它只会显示你选择的单选按钮的答案......
任何帮助都将非常感谢!
Page I我正在努力:http://adventures.org/quiz/default_post.asp
答案 0 :(得分:1)
如果这是纯粹的javascript,你会使用类似的东西:
var inputs = document.getElementById('myForm').getElementsByTagName('input'),
i = inputs.length - 1; //Loop backwards to avoid issues when removing an input
for(; i >= 0; i--) { //for loop
//Is this an unchecked radio button
if(inputs[i].type === 'radio' && !inputs[i].checked) {
//Remove this input element
inputs[i].parentNode.removeChild(inputs[i]);
}
}
<强>更新强>
根据用户的评论,他似乎正在尝试删除包含label
输入的整个radio
元素。以下代码将实现此目的。
var inputs = document.getElementsByTagName('input'),
i = inputs.length - 1,
item;
//Loop backwards through items
for(; i >= 0; i--) {
//If this is an unchecked radio button
if(inputs[i].type === 'radio' && !inputs[i].checked) {
//Begin trying to find the label item
item = inputs[i].parentNode;
//Is this the label item
while(item && item.nodeName.toLowerCase() !== 'label') {
item = item.parentNode;
}
//If an item was found
if(item && item.parentNode) {
//Remove the label element
item.parentNode.removeChild(item);
}
}
}
答案 1 :(得分:0)
你可以这样做:
var yourForm = document.getElementById("yourFormId");
var removeUnchecked = function (form) {
var childrenList = form.children,
num = childrenList.length - 1;
for (var i = 0; i >= num; i--) {
if (!childrenList[i].checked) {
form.removeChild(childrenList[i]);
}
}
}
removeUnchecked(yourForm);
将第一行中的id
替换为表单元素的id
。