javascript - 以编程方式选择 jQuery 按钮集中的 radio 使其崩溃

标签 javascript jquery jquery-ui jqueryi-ui-buttonset

我正在使用基于单选按钮的 jQuery 按钮集在网站上构建编辑器功能。当我将项目加载到编辑器中时,我需要设置选定的单选按钮,然后,当然,用户可以更改选项并将其保存到数据库中。当项目关闭时,我想将按钮组重置为默认值。

问题是,当我设置按钮集时,它会在我第一次选择每个项目时起作用,然后它就会崩溃并停止一起工作。

问题演示:http://jsfiddle.net/kallsbo/vSmjb/

HTML:

<div id="dumpSec">
    <input type="radio" name="security" id="r_public" value="public" class="rSec">
    <label for="r_public"><i class="icon-globe"></i> Public</label>
    <input type="radio" name="security" id="r_private" value="private" class="rSec">
    <label for="r_private"><i class="icon-lock"></i> Private</label>
    <input type="radio" name="security" id="r_link" value="link" class="rSec">
    <label for="r_link"><i class="icon-link"></i> Anyone with the link</label>
</div>
<div>
    If you use the buttons below you can programmatically select each of the radios in the buttonset once before it all breaks down...
</div>
<div>
     <button id="nbr1">Select Private</button><br/>
     <button id="nbr2">Select Link</button><br/>
     <button id="nbr3">Select Public</button><br/>
</div>

JavaScript:

// Basic function
$("#dumpSec").buttonset();
$("#r_public").attr("checked", true);
$("#dumpSec").buttonset('refresh');

// Put in functions on the demo buttons
$( "#nbr1" )
  .button()
  .click(function( event ) {
    $("#r_private").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

$( "#nbr2" )
  .button()
  .click(function( event ) {
    $("#r_link").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

$( "#nbr3" )
  .button()
  .click(function( event ) {
    $("#r_public").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

我已经尝试了很多方法,比如尝试触发每个单选按钮的标签的点击功能等等,但我找不到任何有效的方法。感谢任何输入!

最佳答案

您需要使用 .prop()而不是 .attr()设置勾选状态

$("#r_link").prop("checked", true);

演示:Fiddle

阅读:Attributes vs Properties

关于javascript - 以编程方式选择 jQuery 按钮集中的 radio 使其崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18954824/

相关文章:

javascript - 'generated' 属性在哪里是允许的?

jquery - 如何通过匹配范围内的文本来选择按钮

javascript - 从 ReactJS 状态设置文本区域滚动

javascript - react 导航6 : Override parent navigator's header configuration from an screen inside child navigator

jquery - 将长单词分成多行

javascript - 查询。检测输入类型 'date' 的变化

jquery - ng :areq Argument is not a function, 在 AngularJS 中未定义

javascript - 你如何通过 Firefox 扩展来操作选定的文本

javascript - 在 JavaScript 中将字符串转换为数组?

javascript - 在 Ajax 调用中获取解析器错误