Javascript:使用innerHTML清空空白方框的单选按钮的值

时间:2015-03-29 22:37:44

标签: javascript html radio-button innerhtml

我无法显示单选按钮的值 当我点击单选按钮时, 我想在框中看到按钮的所有值。 它在控制台上显示值,但在框中,它只显示'胡萝卜'这是阵列中的一个成分。

function mixRecipeBox(){
var mixIngredients = document.getElementsByTagName('input');
  for(i=0; i<mixIngredients.length; i++){
    if(mixIngredients[i].checked)
    console.log(mixIngredients[i].value);
    document.getElementById('mixbox').innerHTML = mixIngredients[i].value;
  }
}

2 个答案:

答案 0 :(得分:0)

  1. 您正在替换每个循环中mixbox的所有数据。用这个来 追加数据。
  2. 您忘了{} if block
  3. 启动功能时清空mixbox。
  4. 使用复选框代替收音机,以便用户可以放弃选择。
  5.     function mixRecipeBox(){
        document.getElementById('mixbox').innerHTML=""
        var currentHTML;
        var mixIngredients = document.getElementsByTagName('input');
        
          for(i=0; i<mixIngredients.length; i++){
            if(mixIngredients[i].checked)
            {
             console.log(mixIngredients[i].value);
             currentHTML= document.getElementById('mixbox').innerHTML;
             document.getElementById('mixbox').innerHTML = currentHTML+mixIngredients[i].value;
            }
          }
        }
    <input type="checkbox" value="1" onchange="mixRecipeBox()">
    <input type="checkbox" value="2" onchange="mixRecipeBox()">
    <input type="checkbox" value="3" onchange="mixRecipeBox()">
    <input type="checkbox" value="4" onchange="mixRecipeBox()">
    <div id="mixbox"></div>

答案 1 :(得分:0)

遍历每个无线电元素并分配单击事件处理程序。

单选按钮单击处理程序首先清除mixbox,然后遍历每个无线电元素并将选中的单选按钮值放入mixbox

<div id="rads">
    <input type="radio" value="one"   />1
    <input type="radio" value="two"   />2
    <input type="radio" value="three" />3
</div>
<div id="mixbox"></div>

<script>

var rads = document.querySelectorAll('#rads input[type=radio]');
var mixbox = document.getElementById('mixbox');
Array.prototype.forEach.call(rads, function (elem) {
    elem.addEventListener('click', function (evt) {
        mixbox.innerHTML = '';
        Array.prototype.forEach.call(rads, function (ele) {
            if ( ele.checked ) { mixbox.innerHTML += ele.value + '<br>'; }
        })
    })
})

</script>

JSFiddle