开发者问题收集

返回 onclick 单选按钮上的值

2021-10-21
122

尝试根据单选输入从函数返回一个值,但是我一直得到一个 null 或

Uncaught TypeError: Cannot read properties of null (reading 'value')".

function myFunction() {
  var radioTest = document.querySelector('input[name="inputtest"]:checked').value;
  return radioTest;
}

var test = myFunction();
console.log(test);
<input type="radio" id="test123" name="inputtest" value="testing 123" onclick( "myFunction();") />
2个回答

页面加载时,没有检查输入。 为了使其适用于页面加载和输入检查,您可以使用 Optional Chain 进行断言。

此外,语法无效。不要使用

onclick( "myFunction();")

,而要使用

onclick="myFunction()"

以下是完整代码

function myFunction() {
  var radioTest = document.querySelector('input[name="inputtest"]:checked')?.value;
  console.log(radioTest);
  return radioTest;
}

var test = myFunction();
<input type="radio" id="test123" name="inputtest" value="testing 123" onclick="myFunction()" />

注意:如果您的表单中有多个单选按钮,我建议使用 onchange

Mosh Feu
2021-10-21

您的代码中有两个问题。

  1. 您附加点击事件的方式。
  2. 您在加载时调用 myFunction()。因此它会抛出异常,因为未检查 raiobutton。

使用以下代码。

function myFunction() {
  var radioTest = document.querySelector('input[name="inputtest"]:checked').value;
  return radioTest;
}

function handleClick()
{
  let radioValue = myFunction();
  console.log(radioValue);
}
<input type="radio" id="test123" name="inputtest" value="testing 123" onclick = "handleClick()" />
Ayaz
2021-10-21