我正在尝试找到一种简单的方法来根据渲染时的初始值使用jQuery检查单选选项。
<form>
<input type="radio" name="myRadio" value="weekly" />Weekly <br />
<input type="radio" name="myRadio" value="monthly" />Monthly <br />
<input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>
和Javascript:
$('input [value="weekly"]').prop("checked", true);
我在这里设置了JS小提琴: http://jsfiddle.net/xpvt214o/448712/
有趣的是,它可以使用本机浏览器document.querySelector起作用,但似乎不适用于jQuery。我想坚持使用jQuery的方法来确保代码的一致性。
此外,我要按值选择的原因是我正在调用的JSON API返回枚举的字符串类型。如果我必须为每个单选选项添加唯一的ID属性,然后使用开关盒根据枚举的字符串类型选择适当的按钮,那将是非常烦人的事情。
答案 0 :(得分:2)
简单删除选择器和属性之间的空格:
$('input[value="weekly"]').prop("checked", true);
$('input[value="weekly"]').prop("checked", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="radio" name="myRadio" value="weekly" />Weekly <br />
<input type="radio" name="myRadio" value="monthly" />Monthly <br />
<input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>
有了空格,您告诉jQuery选择具有[value="weekly"]
但属于input
元素的子元素的元素
答案 1 :(得分:0)
$(function(){
$('input[type="radio"][value="weekly"]').prop('checked', true);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="radio" name="myRadio" value="weekly" />Weekly <br />
<input type="radio" name="myRadio" value="monthly" />Monthly <br />
<input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>