0

如何使用 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
    } 
?> 
4

2 回答 2

2

循环产生的所有输入是否都打算作为一个表单的一部分提交?为什么不将它们整理成一个数组

将名称分别从daystodays[]和 fromdate_now更改date_now[]为 。

将 php 控制结构直接嵌入 html 时,请考虑使用替代语法以提高清晰度。

如果您将当前循环计数器嵌入到每个输入的 id 中,您将能够单独选择每个输入。

如果您class为每个输入添加一个属性,您可以将它们作为一个组来选择。

您可以通过将 的结果直接传递给 的第二个参数来消除$ts每次循环迭代中对 的额外分配。strtotime()date()

由于尚不完全清楚您的最终意图是什么,因此这里是修改了您的初始代码示例,并应用了我的所有建议:

<?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());
});
于 2012-11-28T03:29:04.317 回答
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_arraydate_now_array包含所有值。

于 2012-11-28T03:01:59.747 回答