如何使用jQuery获取每个输入字段的值(隐藏和可见)?
<?php
$date = date('m-d-Y');
$ts = strtotime($date);
$year = date('o', $ts);
$week = date('W', $ts);
for($i = 1; $i <= 7; $i++) {
?><td><?php
$ts = strtotime($year.'W'.$week.$i);
?><input type="text" name="days" id="days" />
<input type="hidden" name="date_now" id="date_now" value="<?php print date("Y-m-d", $ts); ?>" />
</td><?php
}
?>
答案 0 :(得分:2)
循环产生的所有输入是否都要作为一个表单的一部分提交?为什么不整理它们into an array?
分别将名称从days
更改为days[]
,从date_now
更改为date_now[]
。
将php控制结构直接嵌入到html中时,请考虑使用alternative syntax以获得更清晰。
如果您将当前循环计数器嵌入到每个输入的id中,您将能够单独选择每个输入。
如果您为每个输入添加class
属性,则可以将它们选为一个组。
您可以通过将strtotime()
的结果直接传递给date()
的第二个参数来消除每个循环迭代中$ts
的额外分配。
由于目前还不完全清楚你的最终目的是什么,这里是你的初始代码示例,我的所有建议都已修改:
<?php
$date = date('m-d-Y');
$ts = strtotime($date);
$year = date('o', $ts);
$week = date('W', $ts);
for($i = 1; $i <= 7; $i++):
$dt = date("Y-m-d", strtotime($year.'W'.$week.$i));
?>
<td>
<input type="text" name="days[]" id="days<?=$i?>" class="days" />
<input type="hidden" name="date_now[]" id="date_now<?=$i>" value="<?=$dt?>" class="date_now" />
</td>
<?php endfor; ?>
从上面的代码中,您可以单独选择其中一个输入:
$("#days3").val();
或者,您可以选择所有隐藏的输入:
var dates_now = [];
$(".date_now").each(function(i, input) {
dates_now.push(input.val());
});
答案 1 :(得分:0)
将id ='days'和id ='date_now'更改为类(class ='days'和class ='date_now'),假设您需要所有值,我们可以将它们放入如下数组:
var days_array = [];
var date_now_array = [];
$('.days').each(function() {
days_array.push($(this).val());
});
$('.date_now').each(function() {
date_now_array.push($(this).val());
});
现在变量days_array
和date_now_array
包含所有值。