jQuery datepicker,在defaultDate中使用$(this)

时间:2014-05-09 08:55:01

标签: jquery datepicker

有一个表格带有'来自'和'直到'日期,每个日,月和年框。 我想用所选日期的每个d-m-y值填充datePicker('从'或'直到')。 这就是脚本的样子:

$('.year').datepicker({
    inline: true,
    showOtherMonths: true,
    showOn: 'button',
    buttonText: '',
    defaultDate: new Date(
        parseInt($('input[name="ydate'+$(this).attr('name').replace(/.date/, '')+'"]').val())
        ,parseInt($('input[name="mdate'+$(this).attr('name').replace(/.date/, '')+'"]').val())-1
        , parseInt($('input[name="ddate'+$(this).attr('name').replace(/.date/, '')+'"]').val())
    ),
    changeYear: true,
    onClose: function(dateText,picker) {
        var prefix = $(this).attr('name').replace(/.date/, '');

        $('input[name="ddate'+prefix+'"]').val( dateText.split(/\//)[1] );
        $('input[name="mdate'+prefix+'"]').val( dateText.split(/\//)[0] );
        $('input[name="ydate'+prefix+'"]').val( dateText.split(/\//)[2] );

    }
});

onClose事件填充d-m-y输入字段就好了,但defaultDate不会像这样工作。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

由于执行上下文未更改,this仍然引用方法的初始化日期选择器的上下文。

所以解决方案可能是使用.year遍历.each()元素集,现在each处理程序this内部会引用当前{{1}元素。

.year