1

我为付款时间表制作了一个小脚本。

单击按钮时,会生成一个输入。此输入是来自 jquery ui 框架的日期选择器输入。

在为第一个输入选择日期时,如果生成另一个输入,则开始日期将是前一个日期加上 1 天。

到目前为止,我已经完成了大约一半的工作,但似乎我的 setDate 选项没有按计划工作。

如果您查看下面的 jsfiddle,您可以看到到目前为止哪些是有效的,哪些是无效的

这是 jquery 代码一目了然:

$('#add_payment_schedule_button').live('click',function(){

    // get number of schedule date inputs already...
    var schedule_count = $('.payment_schedule_date_wrap').length;


    // get previous date if there is more than 1 date box already
    if(schedule_count > 0) 
    {
        var previous_date = $('#payment_schedules input.date:last').val();
        alert(previous_date);
    }

    // the new input var for insertion
    var payment_schedule = '<div class="payment_schedule_date_wrap"><input type="text" name="date['+schedule_count+']" class="date date_'+schedule_count+'" placeholder="..." /></div>';


    // insert the new input into the scope
    $('#payment_schedules').append(payment_schedule);


    // load the date picker...
    $('input.date_'+schedule_count).datepicker({ dateFormat: 'dd-mm-yy', setDate: previous_date});


});

从示例中可以看出,如果您选择日期选择器,选择一个日期,然后添加另一个计划输入,则警报功能会显示您刚刚选择的日期。但它不会将其插入到新的日期选择器中。

我做错了选择器吗?我没看到什么?

我怎样才能简单地将 1 天添加到 previous_date 变量?

谢谢你的时间。

4

2 回答 2

3

实际上 'setDate' 是一个日期选择器方法,而不是一个选项。

 $('input.date_'+schedule_count).datepicker({ 
     dateFormat: 'dd-mm-yy'
 }).datepicker ('setDate', previous_date);

应该管用。

于 2012-04-20T10:10:17.467 回答
1

据我所知,问题在于您在 if 语句中设置了 previous_date 变量。如果变量在 if 语句中,则只能从该语句中访问它。这应该有效。

如果没有日期,它还将创建一个没有 val 的日期(只是一个验证检查)

$('#add_payment_schedule_button').live('click',function(){

    // get number of schedule date inputs already...
    var schedule_count = $('.payment_schedule_date_wrap').length;


    // get previous date if there is more than 1 date box already
var previous_date = "";
if(schedule_count > 0) 
{
    previous_date = $('#payment_schedules input.date:last').val();
    alert(previous_date);
}

// the new input var for insertion
var payment_schedule = '<div class="payment_schedule_date_wrap"><input type="text" name="date['+schedule_count+']" class="date date_'+schedule_count+'" placeholder="..." /></div>';


// insert the new input into the scope
$('#payment_schedules').append(payment_schedule);


// load the date picker...
if(previous_date == "")
{
    $('input.date_'+schedule_count).datepicker({ dateFormat: 'dd-mm-yy' });
}
else
{
    $('input.date_'+schedule_count).val(previous_date).datepicker({ dateFormat: 'dd-mm-yy' });
}

});
});

编辑:刚刚修复了重复的变量声明问题

编辑:我想我刚刚修好了

于 2012-04-20T10:02:50.233 回答