我正在进行测验并使用纯JS一切正常但是为了保持一致我想用jQuery做,但是jQuery总是在寻找无线电选项的第一个值,而不是选择的选项。有什么可以解决jQuery的问题?
HTML
<form id='quiz'>
<input type='radio' class='mc' name='q1' value='a1'>Answer 1<br>
<input type='radio' class='mc' name='q1' value='a2'>Answer 2 <!-- Selected option -->
</form>
JS
var a1 = document.quiz.q1.value;
alert(a1) // output is: a2
var a1 = $('#quiz').find('input[name="q1"]').val();
alert(a1) // output is: a1
答案 0 :(得分:2)
这是通常的jQuery(或JavaScript)行为来获取第一个值而不是选定选项的值。使用jQuery时必须使用$(function () {
var a = $('#quiz').find('input[name="q1"]:checked').val();
console.log(a);
$("button").click(function () {
var a = $('#quiz').find('input[name="q1"]:checked').val();
console.log(a);
});
});
:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='quiz'>
<label><input type='radio' class='mc' name='q1' value='a1'>Answer 1</label><br>
<label><input type='radio' class='mc' name='q1' value='a2' checked="checked">Answer 2 </label><!-- Selected option -->
</form>
<button>Check Selected</button>
:)
在上面的代码段中,尝试选择一些内容并单击按钮以查看所选值。此外,默认情况下,我已经检查了第二个答案。 module.exports.globals = {
bcrypt : require('bcrypt')
}
希望这会有所帮助。