我尝试在组中设置单选按钮而不直接单击按钮。目标是打开一个jQuery页面,根据存储的值,应该设置相关的单选按钮。我阅读了很多类似的文章,并尝试了这个解决方案,但没有人在我的情况下工作。我创建了一个jsfiddle来显示我的用例:http://jsfiddle.net/yZejX/2/。
HTML:
<input type="radio" name="test" id="radio-choice-1" value="3">Test1</input>
<br>
<input type="radio" name="test" id="radio-choice-2" value="4">Test2</input>
<br>
<input type="radio" name="test" id="radio-choice-3" value="5">Test3</input>
JS:
// try to set the attribute directly
$("#radio-choice-1").attr('data-icon','radio-on');
$("#radio-choice-2").attr('data-icon','radio-off');
$("#radio-choice-3").attr('data-icon','radio-off');
// try to set via click event
$("#radio-choice-2").click();
// try to set via changing attribute and call change event to update
$("#radio-choice-2").attr('checked','checked').change();
// try to set via reset checked element and changing attribute
$("input[name='test']:checked").removeAttr('checked');
$("input[name='test'][value='3']").attr('checked',true).change();
$("input[name='test'][value='3']").attr('checked','checked').change();
有人知道我做错了什么,错误在哪里?
非常感谢您的帮助。
答案 0 :(得分:0)
$("#radio-choice-2").attr('checked','checked');
答案 1 :(得分:0)
要设置单选按钮的状态,这是您在javascript中执行的操作
radiobtn = document.getElementById("radio-choice-1");
radiobtn.checked = true;
答案 2 :(得分:0)
您可以使用以下内容对其进行检查:
document.getElementById('radio-choice-1').checked=true;
或者,如果您更喜欢坚持使用jQuery:
$('#radio-choice-2').prop('checked','true');
答案 3 :(得分:0)
非常感谢您的快速反应和所有解决方案。每个都很有效。更改单选按钮后,我通过刷新解决了我的问题:
HTML
<input class="rbgroup1" type="radio" name="test" id="radio-choice-1" value="3" checked>Test1</input>
<br>
<input class="rbgroup1" type="radio" name="test" id="radio-choice-2" value="4">Test2</input>
<br>
<input class="rbgroup1" type="radio" name="test" id="radio-choice-3" value="5">Test3</input>
JS
$(".rbgroup1").checkboxradio("refresh");
现在它似乎有效。我认为更改已检查属性就足够了,但这不是我的情况。
度过愉快的一天。
问候, 托马斯