我的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;
});
});
我认为问题是我在这个页面上有多个无线电区域。如何指定我只想要这些单选按钮是我想要检查的那些?
答案 0 :(得分:1)
此代码:
<击> ... + $('#label-'+ selection [i] .id).find('...
应该是这样的:
... + $('#label-' + selection[i].attr('id')).find('...
因为你在selection
数组中拥有的是jQuery对象,而不是DOM元素对象。
击>
感谢 Esalija 指出我的假设不正确。
答案 1 :(得分:0)
既然你说有多组单选按钮,你正在使用的选择器就是在页面上找到所有这些按钮,这就是你有多个“已选中”单选按钮的原因。
此:
var selection = $("input[type='radio']:checked") || [];
对此:
var selection = $("input[name='radioset1']:checked") || [];
然后只需将每个收音机的名称命名为不同,并将“radioset1”替换为您所需的设置。