フォームで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に伝える方法はありますか?