我正在使用angular2创建一个应用程序。
我需要使用日历弹出框从用户输入中获取日期,但我需要在用户输入上添加一个掩码,以便在输入时保持此格式dd-mm-YYYY。
我使用的是两个不同的模块,我从网络 ng-bootstrap 和 angular2-text-mark
<input [textMask]="{mask: mask}" type="text" class="form-control" placeholder="yyyy-mm-dd"
name="dp" [(ngModel)]="date" ngbDatepicker #d="ngbDatepicker">
当我在同一个代码上使用 textMask 和 ngbDatepicker 时,我收到此错误
错误:多个自定义值访问器将表单控件与未指定的名称属性匹配。
有没有办法做这种事情?
由于
答案 0 :(得分:2)
我面临着同样的问题。我使用了“带有蒙版的ngx-datepicker”。我从输入中删除了ngModel,它的工作原理绝对不错。
答案 1 :(得分:1)
直到今天还没有解决方案。
这是我仍然可以使用屏蔽输入和Ngb DATEPICKER的操作,
我已经创建了两个输入,一个带有掩码输入,另一个带有日期选择器。
每当值更改时,它们都会更新主对象(以前是ngModel
绑定。
这是代码。希望对您有所帮助。
<div class="input-group">
<input
type="text"
class="form-control form-control-sm"
[(ngModel)]="begin_date"
(change)="onDateInput($event.target.value)"
placeholder="dd/mm/aaaa"
[textMask]="{mask: maskedInput.date}"
>
<input
type="hidden"
(dateSelect)="onDateSelect($event)"
[(ngModel)]="object.begin"
ngbDatepicker
#dI="ngbDatepicker"
>
<div class="input-group-addon">
<button
class="btn btn-outline-secondary btn-sm"
(click)="dI.toggle()"
type="button"
>
<i
class="fa fa-calendar"
aria-hidden="true"
></i>
</button>
</div>
</div>
答案 2 :(得分:-1)
Rafael,我遇到了同样的问题,我的解决方案是将输入设置为只读,并允许用户仅使用日历选择日期。
<fieldset class="form-group">
<label>End Date</label>
<div class="input-group">
<span class="input-group-addon" (click)="dpEndDate.toggle()">
<i class="fa fa-calendar"></i>
</span>
<input readonly required [(ngModel)]="model.endDate"
type="text" class="form-control" id="endDate"
name="endDate" ngbDatepicker #dpEndDate="ngbDatepicker">
</div>
</fieldset>