Angular Form验证器仅在文本框中键入内容时有效

时间:2018-11-13 06:55:49

标签: javascript html angular

我正在用PHP在angular5中开发一个小型应用程序。我在验证表格时遇到问题。通过键盘输入数据时,表单验证器可以正常工作。但是,当我用javascript填充数据时,它不起作用。

例如

在电子邮件字段中,

如果我输入myemail,则显示无效的电子邮件。效果很好。 但是,如果我使用$('#email').value('asdsa@gmail.com')之类的JavaScript进行设置,则无法正常工作。

Form

Validator

enter image description here

怎么了?我是Angular5的新手。

3 个答案:

答案 0 :(得分:1)

尝试使用下面的代码在表单控件中设置值。请参阅有角度的文档以获取更多信息https://angular.io/guide/form-validation https://angular.io/guide/reactive-forms

https://angular.io/api/forms/FormControl

this.registerForm.controls.email.setValue('asdsa@gmail.com');

答案 1 :(得分:0)

您只能说看到此link

this.registerForm.patchValue({
email: 'asdsa@gmail.com'
});

或者您可以在创建表单之初就对其进行分配,

this.registerForm = this.fb.group({
email: ['asdsa@gmail.com']
})

答案 2 :(得分:0)

如果我没记错的话,angular不知道jQuery何时影响Physical DOM(因此不知道何时对变量进行检查以引起更改)。为了做到这一点,您必须在jquery操作之后启动一个角度变化周期。