1

我有一个无法正常运行的 JavaScript 程序。由于某些原因,在它附加它实际上从选中的单选框获得的内容之前,它附加了三次,并在附加中注明除了样式。我不确定我做错了什么。

$(document).delegate('#add-owner', 'pageinit', function () {
            loadOwners();
            $('#add-owner-save').bind('click', function () {
                var permission = $('#editing-permissions option:selected').text();
                var selection = $("input[type='radio']:checked") || [];
                if (selection.length > 0) {
                    for (var i = 0; i < selection.length; i++) {
                        console.log($('#label-' + selection[i].id).find('.owner-name').text());
                        console.log($("input[type='radio']:checked").val());
                        $('.display-owners').append('<div class="ui-grid-a"><div class="ui-block-a">' + $('#label-' + selection[i].id).find('.owner-name').text() + '</div><div class="ui-block-b" style="text-align:right">' + permission + '</div></div>');
                    }
                    $('.display-owners').trigger('create');
                }
                $('.display-owners').show();
                $('#add-owner').dialog('close');
                $('input[name=contribute-radio]').attr('checked', false).checkboxradio("refresh");
                return false;
            });
        });

我认为问题在于我在此页面上有多个无线电区域。如何指定我只希望这些单选按钮是我想要检查的那些?

4

2 回答 2

1

这段代码:

... + $('#label-' + selection[i].id).find('...

应该是这样的:

... + $('#label-' + selection[i].attr('id')).find('...

因为您在selection数组中拥有的是 jQuery 对象,而不是 DOM 元素对象。

感谢Esalija指出我的假设不正确。

于 2012-10-25T16:37:48.067 回答
0

既然说你有多组单选按钮,你正在使用的选择器会在页面上找到所有这些单选按钮,这就是为什么你有多个“选中”单选按钮的原因。

这:

var selection = $("input[type='radio']:checked") || [];


对此:

var selection = $("input[name='radioset1']:checked") || [];

然后只需将每个无线电装置命名为不同的名称,并将“radioset1”替换为您需要的无线电装置。

于 2012-10-25T20:00:41.317 回答