未定义的值,读取输入

use*_*073 1 javascript forms

我正在为ans定义未定义.为什么?怎么了?

function submitAnswer()
{

var myForm = document.getElementById('quiz');
var ansVal = myForm.ans.value;
var qnoVal = myForm.qno.value;

alert ("ans="  + ansVal);
alert ("qno = " +qnoVal);
return;
}

<form nam="quiz" id="quiz" >
Yes:
<input type="radio" id="ans"  name="ans" value="1"  />
<br />No:
<input type="radio" id="ans" name="ans" value="0"   />

<input id="qno" type="text" name="qno " value="qqq" />

<input type="button" value="" onClick="submitAnswer(); " />
</form>
Run Code Online (Sandbox Code Playgroud)

Rex*_*x M 5

使用theForm.inputElement不是标准的,不能保证工作.相反,您应该使用document.getElementById或其他一些DOM机制来查找所需的输入元素.theForm.elements[name]也有效.

在执行此操作之前,您还需要修复元素ID - 您有两个<input type="radio" />ID为"ans"的元素,这是不正确的.ID必须是唯一的:

<input type="radio" id="ans1"  name="ans" value="1"  />
<input type="radio" id="ans2" name="ans" value="0"   />

<script type="text/javascript">
    var ans1 = document.getElementById('ans1');
    var ans1value = ans1.value;
</script>
Run Code Online (Sandbox Code Playgroud)

或者,使用以下方法将单选按钮组作为单个元素elements:

<script type="text/javascript">
    var theForm = document.getElementById('quiz');
    var ansValue = theForm.elements['ans'].value;
</script>
Run Code Online (Sandbox Code Playgroud)