JQuery从动态加载的行数组中选择表单输入值

时间:2014-06-02 23:56:45

标签: jquery dynamic

我有一个表单,我可以在单击按钮时加载表单的多个输入行。每个输入都有一个名称,所以我可以创建一个数组。

例如,我的输入看起来像

<select name='Area[]' onchange='getSame($(this).val(),$("select[name=Rack]").val())' id='MdWd'>
        <options>(options pulled in through php)</select>
<select name='Rack[]' onchange='getSame($("select[name=Area[]]").val(),$(this).val())' id='MdWd'>
        <options>(options pulled in through php)</select>

我最终可能会加载这些选择器选项的多行。我可以在任何动态加载的行上使用$(this).val选择器获取当前值的值。

但我无法弄清楚如何从SAME行获取姐妹选择器的值(我一共有4个)以传递给我的函数。

我尝试过选择[name = Rack],选择[name = Rack []]如图所示。我试过[name = Rack](没有输入)。我尝试了很多东西,但我无法弄明白。

因为我允许动态加载的行,所以我可以有1到15行。每次更改其中一个选项时,如何从所有4个选择框中获取值?但从那一行得到价值?

我希望我解释得那么好。

编辑:

我发现如果我使用

$('select[name^=Rack]').val()

我至少得到第一行的值。但是如果我添加第二行或第三行或更多行,我仍然只从第一行选择选项中获取值。但至少它现在正在获得价值。

1 个答案:

答案 0 :(得分:0)

我建议您创建一个脚本来添加这些输入字段。

html的

<button id="clickme">Append input field</button>
<div id="foo">
  <input type="text" name="name1" placeholder="Your name">
</div>

.js(使用jQuery)

var field_name = 0;
$('body').on('click','#clickme', function(event) {
  field_name++;
  $('#foo').append('<input type="text" name="name'+field_name+'" placeholder="Your name">');
})

编辑:输入名为“name1”,“name2”,...,“nameN”。通过这种方式,您可以轻松检索其值。

由于您使用的是select,请执行与上面相同的步骤:

html的

<button id="clickme">Append options</button>
<select id="foo">
</select>

的.js

var option = 0;
$('body').on('click','#clickme', function(event) {
  option++;
  ('#foo').append('<option name="'+option+'">Option name</option>')
})

检索可在.js上使用的值

$("body").on('change','#foo', function() {
  // Code to retrieve values here
});