jQuery 对话框设置 radio 检查问题

标签 jquery jquery-ui dialog radio-button

我有一个问题,我想记住 jQuery UI 对话框弹出窗口中选中的单选按钮。

我遇到了一些奇怪的行为,所以我在 JSFiddle 中模拟了它。 fiddle 在创建时基本上会随机选择 3 个 radio 选项之一。然而它很快就会停止工作。

我也尝试过使用和不使用removeAttr('checked') 的行。

您需要多次单击打开对话框并关闭它才能看到它停止工作。我已经在最新版本的 Chrome 中对此进行了测试。

http://jsfiddle.net/t8kN7/5/

HTML

<div id="dialog" style="display:none;">

<input type="radio" class="left" name="rentFrequency" value="1" />
<span class="left">&#160;Monthly&#160;&#160;&#160;</span>

<input type="radio" class="left" name="rentFrequency" value="2" />
<span class="left">&#160;Quarterly&#160;&#160;&#160;</span>

<input type="radio" class="left" name="rentFrequency" value="3" />
<span class="left">&#160;Annualy&#160;&#160;&#160;</span>                                

</div>

<input type="button" name="dialogOpen" value="Open Dialog" />
<input type="text" name="randVal" value="" readonly="readonly" />

Javascript

$(document).ready(function() {

$('input[name="dialogOpen"]').click(function(){
    $("#dialog").dialog({
        title: 'Additional Tenancy Information',
        resizable: false,
        width: 530,
        show: { effect:'fade', duration:500 },
        hide: { effect:'fade', duration:400},           
        modal: true,
        close: function (event, ui) {
        },
        open: function (event, ui) {
            var randval=Math.floor(Math.random()*3)+1
            console.log(randval); 
            $('input[name="randVal"]').val(randval);
            $('input[name="rentFrequency"]').removeAttr('checked');
            $('input[name="rentFrequency"][value="'+randval+'"]').attr('checked', 'checked');
        }
    });
});
});

这实际上是相同的代码,只是没有弹出对话框,并且其行为符合预期:

http://jsfiddle.net/W6rFh/1/

只要一直点击“运行”

最佳答案

跟进我的评论。将 attr 实例更改为 prop

$('input[name="randVal"]').val(randval);
$('input[name="rentFrequency"]').prop("checked", false);
$('input[name="rentFrequency"][value="'+randval+'"]').prop("checked", true);

关于jQuery 对话框设置 radio 检查问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342158/

相关文章:

jquery - ScrollTo 内容不居中

jquery - onblur 事件可以与 Jeditable 和 jQuery UI sortable 一起使用吗?

c++ - 在 MFC 对话框和它自己的线程上的 OpenGL 控件之间传递消息

facebook - 为什么 facebook 的 dialog.feed 需要一个 app_id

android - 不推荐使用 showDialog。有什么选择?

javascript - Jquery - 输入名称值没有改变,但 id 改变了?

javascript - 如何使用 jQuery 检查我是否正在离开另一个网站?

javascript - 如何获取嵌入 IFrame 的网站的主机名

javascript - 为 Jquery UI 主题添加类名以设置动态生成内容的样式

ruby-on-rails - 尝试更改数据表的设计外观时无法在 Rails 4 中找到文件 'jquery.ui.core'