我有一个页面,我使用 for 循环添加文本框。有一个表,其中有 12 行 4 列。在第二列和第四列中,我添加了显示良好的日期选择器。
问题是当我从第二列中的日期选择器中选择日期时,日期会在第二列中设置(正确),但是当我在第四列中选择日期时,日期会在第二列中设置(不正确)。
这是我的代码:
...
<table class="table table-striped">
<tr>
<th><center>Column1</center></th>
<th><center>Column2</center></th>
<th><center>Column3</center></th>
<th><center>Column4</center></th>
</tr>
<?php
for($i=0; $i<count($time_period); $i++) {
$current_table = $table[$i];
$result = $db->query("SHOW TABLES LIKE '$current_table'");
if($result->rowCount() > 0) {
//Table Exists!
?>
<tr>
<td><center><?php echo $time_period[$i]; ?></center></td>
<td><input type="text" class="form-control datepicker" id="<?php echo $i; ?>" autocomplete="off" name="date_receipt[]" value=""></td>
<td><input type="text" class="form-control" id="<?php echo $i; ?>" autocomplete="off" name="cheque_amount[]" value=""></td>
<td><input type="text" class="form-control datepicker" id="<?php echo $i; ?>" autocomplete="off" name="date_deposit[]" value=""></td>
</tr>
<?php
}
}
?>
</table>
...
添加日期选择器的 JQuery 代码
<script>
$(function(){
$.datepicker.setDefaults(
$.extend($.datepicker.regional[''])
);
$('.datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
});
</script>
我不知道为什么会发生这种情况。有什么想法吗?
最佳答案
我也遇到过类似的问题。尝试为它们提供唯一的 ID,然后使用 ID 在 jQuery 中选择它们。
推理:我的猜测是 .datepicker 返回一个节点数组,因此当它被单击时,它将值放入 class.val 中,这将是数组中的第一个子节点。
更新响应:
它们都有相同的 ID:
id="<?php echo $i; ?>
不工作:http://jsfiddle.net/snlacks/k3hdzLre/3/ 工作中:http://jsfiddle.net/snlacks/k3hdzLre/4/
因为它们都有相同的 ID,浏览器将通过 ID 来查找类(即使您没有传递 ID),因为这样更快。浏览器假定 ID 是唯一的。
关于javascript - 为什么 JQuery Datepicker 出现故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27526987/