1

問題

JS を使用してユーザーの入力に従ってオカレンスを生成しようとしています。日付以外はすべて正常に生成されます。次の日付形式24/07/2013が必要ですが、ユーザーが12以下の日付を選択すると、日付が月に置き換えられます。例: ユーザーが今日の日付、つまり01/07/2013を選択した場合、 07/01/2013と表示されます。

以下のコードを貼り付けました。

外部 JS ファイルへのリンク

recurrence.js

プロトタイプ.js

ページ内コード

                jQuery(document).ready(function($) {
                jQuery(function() {
                    var dates = jQuery( "#start, #until" ).datepicker({
                        //defaultDate: "+1w",
                        changeMonth: true,
                        changeYear: true,
                        numberOfMonths: 1,
                        dateFormat:"dd/mm/yy",
                        minDate:1,
                        onSelect: function( selectedDate ) {
                            var option = this.id == "start" ? "minDate" : "maxDate",
                            instance = jQuery( this ).data( "datepicker" ),
                            date = jQuery.datepicker.parseDate(
                            instance.settings.dateFormat ||
                                jQuery.datepicker._defaults.dateFormat,
                            selectedDate, instance.settings );
                            dates.not( this ).datepicker( "option", option, date );
                        }
                    });
                });

                function generate_recurrence () {
                var pattern = {};

                // gather pattern
                ['start', 'every', 'unit', 'end_condition', 'until', 'rfor', 'nth', 'occurrence_of', 'radioSelection', 'indefinate'].each(function(k) {
                    pattern[k] = $(k).value;
                });

                // gather selected days
                pattern.days = $$('input.week_days').collect(function(d) {
                    if (d.checked) return d.value;
                    return null;
                }).compact();

                try {
                    var r = new Recurrence(pattern);
                    var dates = r.generate((this.value == '') ? undefined : this.value);
                } catch (e) {
                    $('output').value = e.message;
                    return;
                }

                // $('output').value = "long:\n" + r.describe() + "\n\n";
                $('frequency_summary').innerHTML = r.describe();
                // compact description. next version.
                $('kunal_frequency_sam').value =r.describe();

                $('output').value = dates.collect(function(d) {
                    return d.toString('dd/MM/yyyy');
                }).join("|");



            }


            document.observe('dom:loaded', function ( ) {
                $('end_condition').observe('change', function () {
                    $$('#for_span, #until_span, #never_span').invoke('hide');
                    $(this.value + '_span').show();
                });

                $('unit').observe('change', function () {
                    $$('#week_span, #month_span').invoke('hide');
                    if (this.value == 'w') $('week_span').show();
                    if (this.value == 'm') $('month_span').show();
                });


                $('radioSelection').observe('change', function () {
                    $$('#weekdate, #weekday').invoke('hide');
                    if (this.value == 'weekdate') $('weekdate').show();
                    if (this.value == 'weekday') $('weekday').show();
                });

                $$('button').invoke('observe', 'click', generate_recurrence);
            });
4

0 に答える 0