Açısal 2 ile bir form oluşturdum ve bazı custome validators ekledim. Şimdi, kullanıcı gönder düğmesini tıkladığında form doğrulamasını tetiklemek istiyorum. Şimdiye kadar bulduğum örneklerde, form geçersiz olduğu sürece, gönder düğmesi devre dışı bırakılır, ancak gönderme düğmesinin her zaman etkinleştirilmesini istiyorum ve kullanıcı tıkladığında, formu doğrulamanız gerekir. Bu çalışmayı nasıl yapabileceğimi ve hangi yazı tipini kullanmam gerektiğini bilen var mı? UpdateValueAndValidity yöntemini buldum ancak bu yöntemle çalışmıyor gibi görünüyor.Açısal 2 Tetikleyici Form Onayı Onayla
cevap
Şablon Dayalı Form kullanıyorsanız, bu sözdizimini kullanabilirsiniz: Böyle göndermek üzerinde de bazı hatalar ekleyebilir
add(isValid: boolean){
if(isValid){
//do something
}
}
<form #f="ngForm" (submit)="add(f.valid)" novalidate>
<button type="submit">Save</button>
</form>
ts:
<form #f="ngForm" (submit)="add(f.valid)" novalidate>
<label>Name</label>
<div>
<input [(ngModel)]="name" name="name" #name="ngModel" required>
</div>
<div[hidden]="name.valid || (name.pristine && !f.submitted)">
<small class="text-danger">Please input name</small>
</div>
<button type="submit">Save</button>
</form>
Doğrulama, modeli her değiştirdiğinizde uygulanmalıdır. Ancak, belki de FormControl el değmemiş olduğundan hata iletisini göremiyor musunuz? İşte iyi çalışan çözümüm.
aşağıdaki kolay adımları ile yaptım: formGroupDirective
@Component({ selector: 'form', templateUrl: 'form.component.html', styleUrls: ['form.component.scss'] }) export class FormComponent implements OnInit { @Output() submit = new EventEmitter(); constructor(@Optional() private formGroupDirective: FormGroupDirective) { } ngOnInit() { if (this.formGroupDirective) { this.formGroupDirective.ngSubmit.subscribe(() => { this.formGroupDirective.form['submitted'] = true; }); } } }(true olarak gönderilen göndermeniz durumunda ve setteki abone) enjekte
- bir FormComponent (seçici "Formu") uygulayın
önemli çizgiler ngOnInit içindedir
formu için Kontrolü
* ngIf = "control? .hasError ('gerekli') hatayı göstermek için gönderildi & & (control? .touched || ? Oluşturulmasına destek olur
Umut ") .submitted
(Reaktif Formu) onunla
Had sorun benim çözümdür:
- Şablon
<button type="button" (click)="f.ngSubmit.emit(f)">Submit From Outside
form</button>
<form novalidate #f="ngForm" (ngSubmit)="save($event)"
[formGroup]="MyformGroup">
...
</form>
- Sınıf
@ViewChild('f') f: FormGroupDirective;
submit(formDirective: FormGroupDirective) {
console.log('valid', formDirective.valid);
console.log('value', formDirective.value);
}
Formda olmayan bir düğmeyle form göndermek için kullandığım bir çözümdür.
Teşekkürler
Gönderim düğmeniz formunuzun dışındaysa,
IE ile çalışıyor mu? –
Üzgünüz, hayır değil. bakınız: https://www.w3schools.com/tags/att_button_form.asp – Aldracor
- 1. Laravel Submit Butonunu Onayla onayı
- 2. OpenUI5 form doğrulama onayla
- 3. açısal 2 form düzeyi doğrulaması bileşenleri kullanarak
- 4. Açısal 2 - Uyarılar/ipuçları için form doğrulaması
- 5. ngFor girişleriyle Açısal 2 şablon tahrikli form
- 6. Açısal 2 şablon tahrikli form grubu doğrulaması
- 7. Açısal 2,
- 8. jQuery Mobile, form değişikliğini onayla gönder
- 9. Bastırmayı Onayla Form Yeniden Gönderme iletişim kutusu
- 10. Açısal 2,
- 11. JAX-RS ile form girişi onayı
- 12. Açısal 2
- 13. açısal 2
- 14. jQuery: tıklama onayı onayı
- 15. Açısal form gönderme
- 16. Access veri Ben bir kimliğe sahip form var açısal 2
- 17. Açısal (2) Sunucu tarafı form doğrulama (ve en iyi uygulamalar)
- 18. ng devre dışı doğrulama onayı
- 19. angular2 onayla formunu tıklatırsanız tıklayın
- 20. Açısal 2 dökme değer seç
- 21. Açısal 2 belgeleri/açısal 2 için bir ngdocs var mı?
- 22. 'mat-form-alan' bilinen bir öğe değil - Açısal 4 ve Açısal Malzeme 2
- 23. Neden "?" Kullanıyoruz açısal 2
- 24. Açısal 2 yönlendirme hatası
- 25. Açısal 2 Tarih atması
- 26. Açısal 2 RxJS
- 27. Açısal 2 AsyncRoute questoin
- 28. açısal 2 sıralı borular
- 29. Açısal 2 http
- 30. @Input ngOnInit açısal 2
Yardımınız için teşekkürler, ancak formum dinamik olarak oluşturulduğundan modele dayalı yaklaşımı kullanıyorum. Sorun, onaylamanın çalıştığı görünüyor, ancak hatalar görüntülenmiyor. – Snake
Muhtemelen, form dokunulduğunda/kirlendiğinde gösterilecek doğrulamaları ayarlayabilirsiniz. Boş bir form gönderirseniz, onaylar hala 'el değmemiş' olduğundan gösterilmeyecektir. Henüz bir çözüm bulamadım. –
Yardımlarınız için teşekkürler. – Senthil