如何检查单选按钮是否使用javascript选择
您好,我是网络开发新手。我在html5中创建了一个简单的测试问题,其中用户只选择一个答案(使用无线电)。这在HTML和JavaScript中完成。没有后端。我想确定在转移到下一个问题之前已经选择了一个单选按钮。如果单选按钮没有被选中,它会显示一个警告,告诉用户在前进之前必须选择一个答案。如何检查单选按钮是否使用javascript选择
下面是我的代码:
<section>
<p class="questions">Given points (X1, Y1) and (X2, Y2) select the formula to find the equation of the given line.</p>
<div >
<form class="answers">
<input type="radio" name="radio" value="correct">
<math xmlns = "http://www.w3.org/1998/Math/MathML">
<mrow>
<mi> y</mi>
<mo>=</mo>
<mi>m</mi>
<mo>⁢</mo>
<mi>x</mi>
<mo>+</mo>
<mi>b</mi>
</mrow>
</math>
<!-- 2nc choice -->
<input type="radio" name="radio" value="incorrect" >
<math xmlns = "http://www.w3.org/1998/Math/MathML">
<mrow>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>-</mo>
<mi>h</mi>
<msup>
<mo>)</mo>
<mn>2</mn>
</msup>
</mrow>
<mo>+</mo>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>-</mo>
<mi>k</mi>
<msup>
<mo>)</mo>
<mn>2</mn>
</msup>
</mrow>
<mo> = </mo>
<mrow>
<msup>
<mi> r</mi>
<mn>2</mn>
</msup>
</mrow>
</mrow>
</math> <br>
<!-- 3rd choice -->
<input type="radio" name="radio" value="incorrect">
<math xmlns = "http://www.w3.org/1998/Math/MathML">
<mrow>
<mrow>
<mi>y</mi>
<mo>-</mo>
<msub>
<mi>y</mi>
<mn>1</mn>
</msub>
</mrow>
<mo> = </mo>
<mrow>
<mi>m</mi>
<mo>⁢</mo>
<mo>(</mo>
<mi>x</mi>
<mo>-</mo>
<msub>
<mi>x</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</math>
<!--4th Choice -->
<input type="radio" name="radio" value="incorrect">
<math xmlns = "http://www.w3.org/1998/Math/MathML">
<mrow>
<mrow>
<mi>y</mi>
<mo>-</mo>
<msub><mi>y</mi><mn>2</mn></msub>
</mrow>
<mo> = </mo>
<mrow>
<mfrac>
<mrow>
<msub><mi>y</mi><mn> 2</mn></msub>
<mo> - </mo><msub><mi> y</mi><mn> 1</mn></msub>
</mrow>
<mrow>
<msub><mi>x</mi><mn> 2</mn></msub>
<mo> - </mo><msub><mi> x</mi><mn> 1</mn></msub>
</mrow>
</mfrac>
</mrow>
<mrow>
<!-- <mo>⁢</mo> -->
<mo>(</mo>
<mi> x </mi>
<mo> - </mo>
<msub><mi> x</mi><mn>2</mn></msub>
<mo>).</mo>
</mrow>
</mrow>
</math>
<br>
<!-- submit button -->
<input type="submit" value="Submit & Next Question" onclick="getAnswer1(this.form)">
<!-- clears the radio -->
<input type="submit" value="Cancel & Clear Selection" onclick="">
</form>
</div>
</section>
<script type="text/javascript" src="script.js"></script>
我知道我的JavaScript代码是错误.. 的Javascript:
/**Trouble making sure user selects an input doesn't matter if its wrong or right. An alert should displayed if user attempts to go to next question. Must select an option. **/
//global array stores answers
var results = [];
function getAnswer1(form) {
var radios = form.elements['radio'];
for(var i = 0; i < radios.length; i++) {
if(radios[i].checked) {
//
}
}
}
var radios = document.getElementsByTagName('input');
var value;
for (var i = 0; i < radios.length; i++) {
if (radios[i].type === 'radio' && radios[i].checked) {
// get value, set checked flag or do whatever you need to
value = radios[i].value;
}
}
后更新如果单选按钮没有被选中,并且用户尝试提交而没有检查按钮,我如何创建一个提醒 – user3497437
for循环完成后,值变量是空的,这意味着没有单选按钮被选中。然后你可以简单地调用alert(“你必须选择一个选项”); –
当您找到检查的值时,您可以跳出循环。 – Barmar
您可以使用document.querySelector
找到检查并获得它的价值。
function getAnswer1(form) {
var checked = form.querySelector("input[type=radio]:checked");
var value;
if (!checked) {
alert("You need to select one of the options");
return;
} else {
value = checked.value;
}
results.push(value);
}
另外,为了防止形式从提交当你点击submit
按钮,更改
onclick="getAnswer1(this.form)"
到:
onclick="getAnswer1(this.form; return false;"
我试图在我下面使用Dennis Nerush示例来存储数组中的单选按钮的结果,但是当我试图在控制台上显示数组时,它将返回空。请问我做错了什么 – user3497437
还有什么区别btwn querySelector和form.element ['radio'] – user3497437
'querySelector'允许您使用CSS选择器语法来做更复杂的匹配。 – Barmar
你的HTML有'NAME = “无线电”',但你的Javascript有'form.elements ['radios']'。 JS中额外的's'使它无法工作。 – Barmar
@Bamar哦是的我纠正,谢谢你将在 – user3497437