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});


});

例からわかるように、datepicker を選択し、日付を選択してから、別のスケジュール入力を追加すると、アラート機能により、選択した日付が表示されます。しかし、それは新しい日付ピッカーには挿入されません。

セレクターを間違っていますか?何が見えないのですか?

そして、単に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 に答える