我在php foreach循环中动态创建输入。我正在为我想要添加datepicker的文本框分配一个类日期选择。循环之后,日期选择器仅出现在第一个实例上而其余部分没有。除此之外,它导致我的其他jquery失败,在控制台上显示错误:Uncaught TypeError: Cannot read property '1' of null date.js:477
这是我的循环php代码:
<?php
for ($i=0; $i<$poterms; $i++)
{
$lastcb=$lastcb+ 1;
$nextdate=date('d-m-Y', strtotime($nextdate. ' + 30 days'));
?>
<tr class="row1">
<td><input class="date-pick" value="<?php echo $nextdate; ?>" /></td>
<td><input type="text" class="chkno" name="CheckNo" id="CheckNo<?php echo $i;?>" value="<?php echo $lastcb;?>"/></td>
<td><input type="text" class="chkval" name="Amount" value="<?php echo $checkamt;?>" onKeyup ="updatechecktotal()" /></td>
</tr>
<?php
$nextdate=date('d-m-Y', strtotime($nextdate. ' + 30 days'));
}
?>
这是我调用datepicker函数的地方:
$(function()
{
$('.date-pick').datePicker().val(new Date().asString()).trigger('change');
});
这是错误指向date.js
的部分Date.fromString = function(s)
{
var f = Date.format;
var d = new Date('01/01/1970');
if (s == '') return d;
s = s.toLowerCase();
var matcher = '';
var order = [];
var r = /(dd?d?|mm?m?|yy?yy?)+([^(m|d|y)])?/g;
var results;
while ((results = r.exec(f)) != null)
{
switch (results[1]) {
case 'd':
case 'dd':
case 'm':
case 'mm':
case 'yy':
case 'yyyy':
matcher += '(\\d+\\d?\\d?\\d?)+';
order.push(results[1].substr(0, 1));
break;
case 'mmm':
matcher += '([a-z]{3})';
order.push('M');
break;
}
if (results[2]) {
matcher += results[2];
}
}
var dm = new RegExp(matcher);
var result = s.match(dm);
for (var i=0; i<order.length; i++) {
var res = result[i+1]; //line 477
switch(order[i]) {
case 'd':
d.setDate(res);
break;
case 'm':
d.setMonth(Number(res)-1);
break;
case 'M':
for (var j=0; j<Date.abbrMonthNames.length; j++) {
if (Date.abbrMonthNames[j].toLowerCase() == res) break;
}
d.setMonth(j);
break;
case 'y':
d.setYear(res);
break;
}
}
return d;
};
这让我发疯了......
答案 0 :(得分:0)
我将一个班级分配到了应该放置日期选择器的位置,并且为了附加td的内容而创建了功能:
$(function()
{
$('.date-pick').datePicker().val(new Date().asString()).trigger('change');
});
function createNewDatepickerInput()
{
var $newdatepick = $('<input name="date1" class="date-pick"/>');
$datepick.appendTo(".dateclass").datepicker();
}
这就是诀窍:)感谢您的评论:)