【问题标题】:jQuery manually set buttonset radiosjQuery 手动设置按钮组收音机
【发布时间】:2014-01-26 00:31:47
【问题描述】:

我正在尝试手动将单选按钮设置为选中,但出现了问题。代码运行良好:

$('#'+align+'Text').attr("checked","checked");

但是当我将 jQuery UI 付诸实践并将收音机变成按钮组时,一切都崩溃了。同样,在我放入 .buttonset() 之前一切正常,然后它们看起来比普通收音机好得多,但上面的设置根本不起作用。

强调以下几点:
当 .buttonset() 在这些收音机上处于活动状态时,是否有人能够手动设置单选按钮?

【问题讨论】:

  • 首先:checked 属性是一个布尔值,通过存在或不存在来设置。它不需要属性。尝试改用:attr('checked',true)。这可能会有所作为。
  • 这不是问题,当不使用 jQuery UI 时,无论哪种方式都可以正常工作。
  • 您可能需要考虑发布一个JS Fiddle 演示来重现您的问题;这样我们就可以看到什么与什么相互作用。
  • @Yottagray - 我无法让“buttonset()”在 jsfiddle 中做任何事情 - 它应该做什么?至少可以说,“buttonset”的文档不足......
  • 这是一个 jsFiddle,其中设置单选按钮“checked”属性效果很好:jsfiddle.net/Pointy/Nggxc/3

标签: javascript jquery html jquery-ui


【解决方案1】:

您需要做的就是在设置“checked”属性后对按钮小部件调用“刷新”操作。

$('#'+align+'Text').attr("checked","checked").button('refresh');

这是jsfiddle

请注意,可以(并且,有人会说,应该)使用.prop() 函数设置“checked”属性:

$('#' + align + 'Text').prop('checked', true).button('refresh');

【讨论】:

  • 好吧,你的解决方法还不错,真的;这是一个好主意,只是碰巧没有必要:-)
  • 或者产生预期的效果,最近沉迷于SO,有时会超前:-)
  • 感谢 Pointy 和 Mark,我非常感谢您的努力。马克的回答对我来说效果很好,但你的尖尖的要好一些。再次感谢!
  • 请注意,这不会触发更改事件,因为您可以这样做: $('#'+align+'Text').attr("checked","checked").button(' refresh').trigger('change');
猜你喜欢
  • 2011-08-04
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多