3

ある時間フィールドが別の時間フィールドよりも大きいことを検証しようとしています。時間はbootstrap-datetimepickerによって入力され、KO Validation で検証されます。

私の問題は、テキスト ボックスの自動修正の前に検証が行われるように見えることです。

オートコレクトが適用された後に検証を行うにはどうすればよいですか?

コード:

var vm = function () {
    var self = this;
    self.startTime = ko.observable().extend({ required: true });
    self.endTime = ko.observable()
    .extend({
        validation: {
            validator: function (val) {
                if (self.startTime() === '' || val === '') {
                    return true;
                }
                return new Date(val) > new Date(self.startTime());
            },
            message: 'Event must finish after it started'
        }
    });
    (function () {
        $('#event-start-time').datetimepicker({
            pickDate: false
        });
        $('#event-end-time').datetimepicker({
            pickDate: false
        });
        $('#event-end-time').on("change.dp", function (e) {
            //I've tried with and without this
            //self.endTime.valueHasMutated();
        });
    })();
};

結果:

ここに画像の説明を入力

フィドル

4

1 に答える 1