2

フォームでBootstrap Datepickerを使用して Backbone.js を使用しています。

クライアントが 'dd.mm.yyyy' 形式を使用できるようにするための簡単な説明だったので、datepicker でオプションを設定しました。

self.$el.find('[data-role="invoicedate"]').datepicker({
    format: "dd.mm.yyyy",
    todayBtn: "linked",
    todayHighlight: true,
    language: Application_language
});

次に、クライアントは「dd.mm.yy」も許可し、自動翻訳することを望んでいたので、次のことを行いました。

invoicedateToModel: function() {
    var invoicedate = this.$el.find('[data-role="invoicedate"]').val();
    var re2 = /^(\d{2})\.(\d{2})\.(\d{2})$/;
    if (re2.test(invoicedate)) {
        invoicedate = invoicedate.replace(re2,"$1.$2.20$3");
    }
    var re4 = /^(\d{2})\.(\d{2})\.(\d{4})$/;
    if (re4.test(invoicedate)) {
        this.saveInvoiceDate(invoicedate);
        this.displayInvoiceDate();
        this.$el.find('[data-role="invoicedate"]').parent().toggleClass('has-error', false);
    } else {
        this.$el.find('[data-role="invoicedate"]').parent().toggleClass('has-error', true);
    }
},

それを入力の変更イベントにバインドしました。dd.mm.yy は dd.mm.yyyy 形式に適合するため、つまり矛盾しないため、これはうまく機能しました。

ここで、クライアントは入力オプションとして ddmmyyyy も追加できるようにしたいと考えていますが、ddmmyyyy が dd.mm.yyyy と一致しないため、datepicker は新しく入力された日付を最後に既知の適切な日付、つまり今日の日付に置き換えることでフォームを自動修正します。 、上記のコールバックが呼び出される前。

複数の許可された形式についてbootstrap-datepickerに伝える方法はありますか?

4

1 に答える 1