1

我在容器中的输入字段很少,用户可以将这些字段相乘。我需要根据容器更改输入字段的名称。

<div class="stations">
 <input type="radio" name="pp[prc][0][station][0][id]">
 <input type="radio" name="pp[prc][0][station][1][id]">
</div>

这是我的 HTML 表单。

$(".stations").each(function(sIndex){
//Loop thru all .station
  $("input:radio", $(this)).each(function(rIndex){
    //Loop thru all radio buttons inside that container and change their names accordingly
   $("input:radio", $(this)).attr('name','pp[prc]['+sIndex+'][stations]['+rIndex+'][id]');
  });
});

当我这样做时,由于某种原因,当用户复制<div class="station">及其内容时,单选按钮的名称不会相应地更改。我哪里做错了?

4

2 回答 2

1

您正在使用$(selector, context)并且输入元素不能有子元素,您应该编码:

$(this).attr('name', '...');
于 2013-04-15T00:39:08.937 回答
0

看起来你对选择器有一些问题。试试这样:

//Loop through each .station
$(".stations").each(function(sIndex){

    //Loop through each radio buttons inside the container
    $(this).find("input:radio").each(function(rIndex){

        // Change the radio name attribute
        $(this).attr('name','pp[prc]['+sIndex+'][stations]['+rIndex+'][id]');
    });
});

工作的jsFiddle

这是一个带有屏幕名称的 jsFiddle,以便更快地查看。

于 2013-04-15T00:48:59.020 回答