如何从克隆的TextBox中获取值

时间:2014-08-01 13:16:45

标签: javascript jquery html asp.net-mvc

我正在创建一个像输入表格的调查问卷,我在询问人们最喜欢的游戏机和游戏的问题(正如你从下面的代码中看到的)所有这些都在一个名为duplicator的外部div中。当我点击“游戏”但是'按钮这会调用Jquery方法duplicate()克隆div,所以现在将有两个div,类似的div与其中的smilar文本框。因为它被克隆,我无法从中获取数据,它只给我第一个(原始)div的数据。如何从克隆的div中获取值,任何建议?

MARKUP:

<div id="duplicator">
<div id="gamesborder">
<table>
    <tr>
        <td>Consoles</td>
        <td>Games</td>
    </tr>
    <tr>
        <td>                         
         <%=Html.TextBox("Consoles", ViewData["Consoles"] ?? "") %>
        </td>
        <td><%=Html.TextBox("Games", ViewData["Games"] ?? "") %>                </td>
    </tr>
</table> 
</div>
</div>

<button id="gamebut" type="button" onclick="duplicate()">Add new entry</button>

的Javascript:

  document.getElementById('gamebut').onclick = duplicate;

  var i = 0;
  var original = document.getElementById('duplicator');

  function duplicate() {
      var clone = original.cloneNode(true);
      clone.id = "duplicator" + ++i;
      original.parentNode.parentNode.appendChild(clone);
  }

控制器类:

[AcceptVerbs("POST")]
public ActionResult Game(string consoles, string games)
{
    ViewData["Consoles"] = consoles;
    ViewData["Games"] = games;
    ViewData["Forename"] = forename;

    if (ViewData.ModelState.IsValid)
    {

    }
    return View();
}

1 个答案:

答案 0 :(得分:0)

使用类然后遍历它们,所以不使用ID来访问对象,而是使用jquery类选择器又名

$(".CLASS_NAME");

让您的输入有一个类并通过该类选择

让我们说你的输入

class="duplicated_input"

然后你选择并迭代这样。

var _inputs = $(".duplicated_input");

for(var i = 0; i < _inputs.length; i++)
{
    var _input = _inputs[i];
    //do your logic here.

}

example JSFIDDLE