1

正しく機能しない JavaScript プログラムがあります。チェックされたラジオボックスから実際に取得しているものを追加する前に、いくつかの理由で、スタイリングを除いて追加に注意して3回追加します。何が間違っているのかわかりません。

$(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 に答える