我有一个页面,我使用for循环添加文本框。有一个表格,其中有12行,4列。在第2和第4列中,我添加了正好显示的datepicker。
问题是当我从第二列的datepicker中选择日期时,日期在第二列中设置(正确)但是当我在第四列中选择日期时,日期在第二列中设置(不正确)。
这是我的代码:
...
<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>
...
添加Datepicker的JQuery代码
<script>
$(function(){
$.datepicker.setDefaults(
$.extend($.datepicker.regional[''])
);
$('.datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
});
</script>
我不知道为什么会这样。有什么想法吗?
答案 0 :(得分:1)
我遇到过类似的问题。尝试给他们提供唯一的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是唯一的。