如何分别从动态生成的文本框中获取值?

时间:2015-01-15 04:47:02

标签: jquery dynamic

$.ajax({            
  type: "POST",
  contentType: 'application/json;charset=utf-8',
  dataType:'json',
  url: 'generatequotations',
  data: JSON.stringify(),
  success: function(result) {
    //  alert("success"); 
    console.log(result);
    $.each(result, function(i, item) { 
      tr = $('<tr/>');   
      tr.append($("<td/>").html('<input type="text" name="unit_price" id="unit_price"/>'));
      tr.append($("<td/>").html('<input type="text" readonly="true" name="total" id="total"/>'));
      $('#tbl_items').append(tr);
    });   
  }
});

<body>
<table id="tbl_items"></table>
</body>

假设上面的代码将生成10&#39; unit_price&#39;表格中的文本框,我需要的是我想分别得到这10个文本框的值,以便进一步计算。帮助我极客...

链接到屏幕截图http://oi62.tinypic.com/255hslc.jpg

这两行是动态生成的,我想让每个文本框(&#39; unit_price&#39;)在相应的总计(&#39; total&#39;)文本框中

2 个答案:

答案 0 :(得分:1)

将文本框选择器从id更改为class,因为您必须获取多个值。

<input type="text" name="unit_price" class="unit_price"/>
<input type="text" name="unit_price" class="total"/>

<强>的jQuery

total = 0;
$(".unit_price").each(function(){
   //Find total column and put unit_price value in total column
   $(this).closest(".total").val($(this).val());  
});

答案 1 :(得分:0)

您可以使用两种不同的方式获取价值。

首先:当你在那个时候向行添加一个文本框时,将它的id设为&#34; id&#34; + i,这将为每个文本框提供不同的id,同样的事情可以应用于排也。

第二:如果您为所有文本框(您当前正在进行的操作)提供相同的ID,那么您可以使用&#34;这个&#34;找到它的值。 $(this).closest(&#39; input&#39;),$(this).siblings(),$(this).parent()所有这些都将帮助您获得Textbox的价值。

无论您尝试使用哪种方法,都可以在浏览器控制台上试用,特别是在Chrome上,这样可以很好地帮助您。