我正在试图找出为什么会出现defaultDate问题,但我被卡住了。
我有这个例子:
<tr>
<td><input type="text" value="12/03/2012" id="8798044_date"></td>
<td><font class="red">-39 999,60 €</font></td>
<td>
<input type="text" id="8798044" class="date_twr">
</td>
</tr>
以下是可以使用的JS代码:
jQuery('.date_twr').datepicker({
'changeMonth':true,
'changeYear':true,
'dateFormat': 'dd/mm/yy',
'defaultDate': jQuery('#8798044_date').val()
});
问题是我不想使用id,它放在我的测试中。
我宁愿用“操纵”来搜索
jQuery('.date_twr').datepicker({
'changeMonth':true,
'changeYear':true,
'dateFormat': 'dd/mm/yy',
'defaultDate': jQuery(this).parent().prev().prev().find('input').val()
});
使用此课程的点击,我知道我想要的值是正确的:
jQuery('.date_twr').click({
console.log(jQuery(this).parent().prev().prev().find('input').val())
});
但是搜索默认处理不起作用。 我搜索了一下,但我不明白为什么它不起作用。 我想datepicker元素是一个特殊的行为,突然jQuery(this)不是预期的。
欢迎提供一点帮助:)
提前谢谢
PS:我使用jQuery()而不是$(),因为我正在研究的网站上有几个JS库。
答案 0 :(得分:0)
你是对的,在datepicker的上下文中,jQuery(this)引用了文档根。这表明HTML是它的孩子。
jQuery('.date_twr').datepicker({
'appendText': jQuery(this).children().first().prop('tagName')
});
奇怪的是,在每个循环中执行它似乎都有效
jQuery('.date_twr').each(function() {
jQuery(this).datepicker({
'changeMonth':true,
'changeYear':true,
'dateFormat': 'dd/mm/yy',
'defaultDate': jQuery(this).parent().prev().prev().find('input').val()
});
});
编辑:这会提取正确的值,但是datepicker似乎错误地解析了它们,你会得到一些奇怪的结果。这会强制以正确的格式解析日期并将日期对象传递给日期选择器:
jQuery('.date_twr').each(function() {
var dt = jQuery.datepicker.parseDate('dd/mm/yy', jQuery(this).parent().prev().prev().find('input').val());
jQuery(this).datepicker({
'changeMonth': true,
'changeYear': true,
'dateFormat': 'dd/mm/yy',
'defaultDate': dt
});
});