在 javascript 选中的复选框上放置警报时出现问题

problem while placing alert on checkbox checked in javascript

我需要检查是否单击了复选框 1 或 2。 错误:单击任何复选框并按下按钮时仅打印背景

function onlyOne(checkbox) {
  var checkboxes = document.getElementsByName('check')
  checkboxes.forEach((item) => {
    if (item !== checkbox) item.checked = false;
  });
}

function run() {

  var checkboxes = document.getElementsByName('check')
  if (document.getElementById('c1').checked) {
    alert("background");
  } else if (document.getElementById('c1').checked) {
    alert("foreground");
  }
}
<input type="checkbox" name="check" id="c1" value="background" onclick="onlyOne(this)">background</input>
<input type="checkbox" name="check" id="c2" value="foreground" onclick="onlyOne(this)">foreground</input>
<input type="button" value="button" onclick="run()">

在第二条语句中你再次写了 c1 而不是 c2

function onlyOne(checkbox) {
  var checkboxes = document.getElementsByName('check')
  checkboxes.forEach((item) => {
    if (item !== checkbox) item.checked = false;
  });
}

function run() {

  var checkboxes = document.getElementsByName('check')
  if (document.getElementById('c1').checked) {
    alert("background");
  } else if (document.getElementById('c2').checked) {
    alert("foreground");
  }
}
<input type="checkbox" name="check" id="c1" value="background" onclick="onlyOne(this)">background</input>
<input type="checkbox" name="check" id="c2" value="foreground" onclick="onlyOne(this)">foreground</input>
<input type="button" value="button" onclick="run()">


而不是使用你的方法为什么不使用收音机并打印收音机检查如下:

document.getElementById('run').addEventListener('click',AlertMe);

function AlertMe() {

  document.getElementsByName('check').forEach( (el) =>{
    if(el.checked === true) alert(el.value);
  });
 
}
<input type="radio" name="check" value="background">background</input>
<input type="radio" name="check" value="foreground">foreground</input>
<input type="button" value="button" id='run'>

缺少前景元素的命名 ID

    function run(){
        
    [...]
        else if(document.getElementById('c1').checked){
            alert("foreground");
    [...]

应该是:

   [...]
        else if(document.getElementById('c2').checked){
            alert("foreground");
   [...]