我在表单中使用带有Bootstrap Datepicker的 Backbone.js。
简短的是允许客户端使用“dd.mm.yyyy”格式,所以我在日期选择器上设置了选项。
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 不匹配, 在上面的回调被调用之前。
有没有办法告诉 bootstrap-datepicker 多种允许的格式?