0

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

4 回答 4

0

要设置单选按钮的状态,这是您在 javascript 中所做的

 radiobtn = document.getElementById("radio-choice-1");
 radiobtn.checked = true;
于 2013-08-27T09:01:55.793 回答
0

您可以使用以下方式对其进行检查:

document.getElementById('radio-choice-1').checked=true;

或者,如果您更喜欢坚持使用 jQuery:

$('#radio-choice-2').prop('checked','true');
于 2013-08-27T09:02:15.377 回答
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");

现在看来它有效。我认为更改选中的属性就足够了,但我的情况并非如此。

祝你今天过得愉快。

问候,托马斯

于 2013-08-27T09:36:00.047 回答
0
 $("#radio-choice-2").attr('checked','checked');

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

于 2013-08-27T08:58:38.160 回答