每行有4个文本框。我的Jquery代码在下面给出..
var FirstName;
var LastName;
var Email;
var PhoneNumber;
$("#tableId tr").find('fieldset').each(function (i) {
FirstName =FirstName +','+ $("#txtFirstName" + (i + 1) + "").val();
LastName =LastName +','+ $("#txtLastName" + (i + 1) + "").val();
Email =Email +','+ $("#txtEmail" + (i + 1) + "").val();
PhoneNumber = PhoneNumber+','+ $("#txtPhoneNumber" + (i + 1) + "").val();
});
我设置文本框id是动态的,它工作正常,但是当用户删除一行意味着我无法获得基于Id的文本框值。
如何获取文本框值?
答案 0 :(得分:5)
我正在使用索引访问四个文本字段。还将$ fieldset添加为上下文。
$("#tableId").find('tr fieldset').each(function (i) {
var $fieldset = $(this);
FirstName =FirstName +','+ $('input:text:eq(0)', $fieldset).val();
LastName =LastName +','+ $('input:text:eq(1)', $fieldset).val();
Email =Email +','+ $('input:text:eq(2)', $fieldset).val();
PhoneNumber = PhoneNumber+','+ $('input:text:eq(3)', $fieldset).val();
});
答案 1 :(得分:3)
假设您的表有点像这样:
<table>
<tr>
<td>
<input type="text" class="firstName" value="foo1">
<input type="text" class="lastName" value="ba1r">
</td>
</tr>
<tr>
<td>
<input type="text" class="firstName" value="foo2">
<input type="text" class="lastName" value="bar2">
</td>
</tr>
</table>
here's a snippet可能有用(可能需要根据您的需要进行修改)
$(function() {
//storage
var data = {
firstName : [], lastName : []
}
//loop through the tr's
$('table tr').each(function() {
//look for the fields firstName and lastName in the tr
//get their values and push into storage
data.firstName.push($('.firstName', this).val());
data.lastName.push($('.lastName', this).val());
});
//view the data in the console
console.log(data);
//if you prefer the comma separated data
var firstName = data.firstName.join(',');
var lastName = data.lastName.join(',');
});
答案 2 :(得分:1)
尝试像这样使用
获取价值 $(this).find("input[id^='txtFirstName']").val()
答案 3 :(得分:0)
$(this)
将为您提供当前元素的句柄
答案 4 :(得分:0)
您可以使用以下选择器:
$("input[type='input']")
或者将特定class
应用于您想要的textboxes
并搜索该内容。
答案 5 :(得分:0)
理想的解决方案是允许您按ID获取行,即使删除了一行。通过每次删除行时更新行的ID来执行此操作。