0

はい、jquery-ui-timepicker-addon-0.9.3.jsファイルを使用しています

これはカレンダーとの素敵なポップアップがあり、入力フィールドに入力されます。

問題は、入力フィールドがすでに入力されていて、誰かがカレンダーを表示し、次の月をクリックしてカレンダーから離れると、入力フィールドが「完了」であっても、その翌月に更新されることです。ボタンがクリックされませんでした。

誰かがこのJSファイルに精通している場合...日付を選択した後に[完了]ボタンがクリックされた場合にのみフィールドを更新できるようにするための助けをいただければ幸いです...

    $(function()
{
    $("#publication_datepicker").datetimepicker(
    {
        dateFormat: 'mm-dd-yy',
        showOn: 'button',
        buttonImage: '..images/calendar.gif',
        buttonImageOnly: true,
        minDate: 0,
        maxDate: '+5Y',
        duration: '',
        <c:if test="${formIsReadonly or form.newsItemId == '-1'}">disabled: true,</c:if>
        constrainInput: false,
        timeFormat: 'hh:mm'
    });

JSファイル: jquery-ui-timepicker-addon.js

ここに画像の説明を入力してください

4

2 に答える 2

1

問題が見つかりました...jsファイルには、_newInstという関数があります

この行を 2 つのセクションでコメントアウトしました。

tp_inst._updateDateTime(dp_inst)

問題を修正しました

 _newInst: function ($input, o) {
        var tp_inst = new Timepicker(),
            inlineSettings = {};
        tp_inst.hour = tp_inst._defaults.hour;
        tp_inst.minute = tp_inst._defaults.minute;
        tp_inst.second = tp_inst._defaults.second;
        tp_inst.ampm = "";
        tp_inst.$input = $input;
        for (var attrName in this._defaults) {
            var attrValue = $input.attr("time:" + attrName);
            if (attrValue) {
                try {
                    inlineSettings[attrName] = eval(attrValue)
                } catch (err) {
                    inlineSettings[attrName] = attrValue
                }
            }
        }
        tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, {
            beforeShow: function (input, dp_inst) {
                if ($.isFunction(o.beforeShow)) {
                    o.beforeShow(input, dp_inst, tp_inst)
                }
            },
            onChangeMonthYear: function (year, month, dp_inst) {
                //tp_inst._updateDateTime(dp_inst);
                if ($.isFunction(o.onChangeMonthYear)) {
                    o.onChangeMonthYear(year, month, dp_inst, tp_inst)
                }
            },
            onClose: function (dateText, dp_inst) {
                if (tp_inst.timeDefined === true && $input.val() != "") {
                    //tp_inst._updateDateTime(dp_inst)
                }
                if ($.isFunction(o.onClose)) {
                    o.onClose(dateText, dp_inst, tp_inst)
                }
            },
            timepicker: tp_inst
        });
        if (o.altField) {
            tp_inst.$altInput = $(o.altField).css({
                cursor: "pointer"
            }).focus(function () {
                $input.trigger("focus")
            })
        }
        if (tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) {
            tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime())
        }
        if (tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) {
            tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime())
        }
        if (tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) {
            tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime())
        }
        if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) {
            tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime())
        }
        return tp_inst
    }
于 2012-10-17T18:55:54.577 に答える
0

あなたはこれを試すことができます(テストされていません):

   $("#publication_datepicker").datetimepicker(
        {
            dateFormat: 'mm-dd-yy',
            showOn: 'button',
            buttonImage: '../chassis/images/calendar.gif',
            buttonImageOnly: true,
            minDate: 0,
            maxDate: '+5Y',
            duration: '',
            <c:if test="${formIsReadonly or form.newsItemId == '-1'}">disabled: true,</c:if>
            constrainInput: false,
            timeFormat: 'hh:mm'
        });

 $.datepicker.unbind('blur');
于 2012-10-17T17:16:42.917 に答える