如何使用 JQuery 从 <tr> 元素内的所有输入元素中获取值
How to get the values from all input elements inside a <tr> element using JQuery
如何在表单中获取一行中的所有输入元素?例如,在下面的代码片段中,我有一个复选框和一个文本输入框。我想获取这两种输入类型的值,并在下一个包含div id="hist" 元素的 td 元素中向用户显示它们。
<tr><td>Head</td>
<td><input type="text" name="headH" id="headH" ></td>
<td><input class="NA" type="checkbox" name="headNA" id="headNA" value="N/A"></td>
<td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Head","H",num) %>
</td></tr>
<tr><td>Neck</td>
<td><input type="text" name="neckH" id="neckH" ></td>
<td><input class="NA" type="checkbox" name="neckNA" id="neckNA" value="N/A"></td>
<td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Neck","H",num) %></td>
</tr>
<tr><td>UE</td>
<td><input type="text"name="uEH" id="uEH"></td>
<td><input class="NA" type="checkbox" name="ueNA" id="ueNA" value="N/A"></td>
<td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("UExt","H",num) %></td>
此外,我还有一个 5 个单选按钮和一个附加的文本输入框。这些都不在同一行上,但我想获取"pain1"元素和"cerCommentH"元素的值并显示它。请注意,以下只是一个代码片段。我的表单中有几个这样的元素,所以我不能使用它们的"id"单独处理它们。
<tr>
<td>Mech</td>
<td>
<input type="radio" name="pain1" value="Pain a">Pain a
<input type="radio" name="pain1" value="Pain b">Pain b
</td></tr>
<tr><td></td>
<td>
<input type="radio" name="pain1" value="Pain c">Pain c
<input type="radio" name="pain1" value="Pain d">Pain d
<input type="radio" name="pain1" style="display:none;" value="">
<input type="button" value="Clear" onclick="document.history.pain1l[4].checked = true;">
</td>
<td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Cehi","H",num) %></td>
</tr>
<tr>
<td></td>
<td><input type="radio" name="pain1" value="Other">Other
<input type="text" name="cerCommentH" id="cerCommentH">
</td>
<td></td>
<td></td>
</tr>
提前感谢您的帮助。
假设您可能想对每个都做点什么:
$('tr:has(input)').each(function() {
var row = this;
var values = "";
$('input', this).each(function() {
values = values + "," + $(this).val()
});
values = "<div>(" + values.substring(1) + ")</div>";
$('.hist', row).html(values);
});
如果你需要它 serialize() 方式,那么:
var result = '';
$('tr input').each(function(){
result += $(this).attr('name')+'='+$(this).val()+'&'
})
//post result after all
//suppose trid is the id of the tr element
var all = $('#tr input');
//or if tr has no id, but table does have a id 'table1'
var tr = $('input', '#table1 tr:first');
你可以把它序列化成一个数组,然后可以使用serializeArray直接输入到jquery ajax方法中作为数据。
var rowIndex = 1; // row index to pull
// select all inputs that you desire to send, then use serializeArray();
var data = $("tr").eq(rowIndex).find("input").serializeArray();
$.post(url,data,onDoneHandler);
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML