在用 Angular 编写我自己的表单自定义验证时,我注意到在某些用例中 form.$valid 将为 false(因为如果输入不正确,我会这样设置),但会检查 form.$valid 。 $invalid 仍会产生 true,这会导致验证通过并提交表单。什么会导致这种行为?
示例代码:
if (!vm.incentive.donor) {
form.$valid = false; //if this gets set...
}
if (form.$invalid) {
return false; //...this never gets hit, form.$invalid is false
}
return save(goToPayment); //and thus the form gets submitted
最佳答案
他们是对立的。如果值有效,则 $valid
为 true
,而 $invalid
为 false
,如果值是,则相反无效的。这与 $dirty
和 $pristine
的情况相同。
关于javascript - Angular : form. $valid 为 false,但 form.$invalid 也仍然为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32363012/