设置单选按钮,无需交互,只能使用javascript

时间:2013-08-27 08:55:23

标签: javascript jquery-mobile

我尝试在组中设置单选按钮而不直接单击按钮。目标是打开一个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(); 

有人知道我做错了什么,错误在哪里?

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

 $("#radio-choice-2").attr('checked','checked');

http://jsfiddle.net/yZejX/4/

答案 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");

现在它似乎有效。我认为更改已检查属性就足够了,但这不是我的情况。

度过愉快的一天。

问候, 托马斯