1

我有一个 PHP For,它为多个条目加载 5 次相同的输入字段集。

同时,我有一个要在日期字段中运行的“datepicker”javascript。

问题是日期选择器仅在第一行工作。对于接下来加载的 4 行,日期选择器不会在日期字段中运行。

代码:

    <?php 
    for ($i=0;$i<5;$i++)
    {
    ?>
    <tr>
        <td><input id="includeItem" type="checkbox" onchange="includeMore" name="item<?=$i?>"></td>
        <td><input name="id<?=$i?> style="color:#888;" disabled="disabled"></td>
        <td><input class="formItems" id="datepicker" name="date<?=$i?>"></td>
        <td><input class="formItems" name="description<?=$i?>"></td>
        <td><input class="formItems" name="amount<?=$i?>"></td>
    </tr>
    <?php } ?>

Javascript:

<script>
  $(document).ready(function() {
    $("#datepicker").datepicker({
    dateFormat: 'yy-mm-dd'
    });
  });
</script>
4

3 回答 3

3

ID 在页面上应该是唯一的。这意味着当您尝试使用 jQuery 选择 ID 时,它将在找到的第一个 ID 处停止。

您应该使用一个类来规避这种情况,就像这样。

代码:

    <?php 
    for ($i=0;$i<5;$i++)
    {
    ?>
    <tr>
        <td><input id="includeItem" type="checkbox" onchange="includeMore" name="item<?=$i?>"></td>
        <td><input name="id<?=$i?> style="color:#888;" disabled="disabled"></td>
        <td><input class="formItems" class="datepicker" name="date<?=$i?>"></td>
        <td><input class="formItems" name="description<?=$i?>"></td>
        <td><input class="formItems" name="amount<?=$i?>"></td>
    </tr>
    <?php } ?>

Javascript:

<script>
  $(document).ready(function() {
    $(".datepicker").datepicker({
    dateFormat: 'yy-mm-dd'
    });
  });
</script>
于 2013-10-24T15:59:06.787 回答
1

不允许使用相同的 ID,它必须是唯一的 - id="datepicker"

于 2013-10-24T15:58:33.690 回答
1

使用类而不是 ID。

给每个输入一个“datepicker”类并将你的jQuery选择器更改为$(".datepicker")

于 2013-10-24T15:59:00.070 回答