更改无线电输入名称 - 消失无线电选中
我有一个关于通过框顺序在名称属性中更改输入号码的问题。当我在第一个框中更改输入名称时,第二个带有无线电输入的框会丢失选中的值。更改无线电输入名称 - 消失无线电选中
$('.container').find('.box').each(function (idx) {
$(this).find('input').each(function() {
let field = $(this);
let fieldName = field.attr('name');
let mIndex = 0;
if (fieldName.length !== 0) {
field.attr('name', fieldName.replace(
/\[\d+]/g,
function (match, pos, original) {
return mIndex++ === 0 ? '[' + idx + ']' : match;
}));
field.attr('id', field.attr('name').replace(/[\[\]]/g, '#').replace(/\#+/g, '-').replace(/[-]+$/g, ''));
field.closest('.field').children('label').attr('for', field.attr('id'))
}
});
这里是我的代码示例:https://jsfiddle.net/pbLkabhe/
我的问题是如何解决的Javascript代码保持无线电输入检查后改变输入名称值。
所有的收音机都被视为同一个收音机组,因为它们具有相同的名称(方形背景不会使它们成为一个单独的组)。这意味着只有其中一个会被检查。我已经改变了第二套单选按钮的名称,所以现在两套收音机都有正确的收音机。
<label>
<input id="box-0-radio" name="hello[0][radio]" type="radio" value="0" checked="checked">
Option 3
</label>
<label>
<input id="box-0-radio" name="hello[0][radio]" type="radio" value="1">
Option 4
</label>
但我不想更改名称,我想保存名称与框[{number}] [{Name}]。我可能会有一些带有字段的框,例如带有输入收音机的6-9框,其中名称是框[0],框[1],框[2],...等。 – Matt
如果一个单选按钮具有相同的名称,不管方括号如何,一次只能检查其中的一个。这就是单选按钮的工作原理。对此你无能为力。 – WizardCoder
也许我可以用tmp变量做旧值,设置新值并将tmp设置为新名称? – Matt
我没有看到你的形式的任何故障。 –
第二个箱子不显示输入收音机检查选项(http://prntscr.com/fl5794) – Matt