如果未选中,则删除单选按钮

时间:2014-02-24 19:47:46

标签: javascript radio-button

任何人都知道如何循环播放一组单选按钮并删除尚未检查过的按钮?

我要做的是设置一个测验,一旦你提交了测验,它只会显示你选择的单选按钮的答案......

任何帮助都将非常感谢!

Page I我正在努力:http://adventures.org/quiz/default_post.asp

2 个答案:

答案 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