我使用foreach循环打印出一个表格,每一行都会有一个带有一些隐藏输入和一个提交按钮的表单,像这样
<form>
<input type="hidden" value="<?php echo $item['name'] ?>" class="get_name">
<input type="hidden" value="<?php echo $item['email'] ?>" class="get_email">
<input type="hidden" value="<?php echo $item['address'] ?>" class="get_address">
<input type="hidden" value="<?php echo $item['birthday'] ?>" class="get_birthday">
<button type="submit" class="Add">Add</button>
</form>
我想问的是,当我点击该行中的“提交”按钮时如何获取该值。我使用了$('.classname').val()
,唯一得到的结果就是表中第一行的值。
答案 0 :(得分:2)
您可能正在使用val()
,它可以按预期工作:
Get the current value of the first element....
如果使用.each()
遍历元素,则可以像这样检索所有元素的值:
$("input[type=hidden]").each(function() {
console.log($(this).val())
}
没有冒犯,但是这个问题相当琐碎,只需要一些基本的jQuery知识或如何在jQuery docs中进行搜索。我建议您不要像直接进入您的解决方案那样,而是采用这样的jQuery简介来了解如何遍历DOM并使用jQuery提取数据:
答案 1 :(得分:1)
我不确定要清楚地了解您要实现的目标,但是连续获取所有值的一种方法是:
var row = {};
$('input[type=hidden]').each(function () {
row[$(this).attr('class')] = $(this).val();
});
console.log(row);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="hidden" value="<?php echo $item['name'] ?>" class="get_name">
<input type="hidden" value="<?php echo $item['email'] ?>" class="get_email">
<input type="hidden" value="<?php echo $item['address'] ?>" class="get_address">
<input type="hidden" value="<?php echo $item['birthday'] ?>" class="get_birthday">
<button type="submit" class="Add">Add</button>
</form>