javascript - Angular : form. $valid 为 false,但 form.$invalid 也仍然为 false

标签 javascript angularjs forms validation

在用 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

最佳答案

他们是对立的。如果值有效,则 $validtrue,而 $invalidfalse,如果值是,则相反无效的。这与 $dirty$pristine 的情况相同。

关于javascript - Angular : form. $valid 为 false,但 form.$invalid 也仍然为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32363012/

相关文章:

javascript - 如何配置 Vue 路由器来响应查询字符串?

java - vaadin 表单无法隐藏空字段

javascript - 仅当选中复选框时,才会在按钮单击上发布其他表单对象

javascript - Angular 驱动一个 从另一个中选择。第二次选择仅显示一个结果

javascript - Angular 用户界面选择不起作用

javascript - 同步相同的html表单

javascript - window.location.href 不工作,为什么不呢?

javascript - "click"和onclick的区别

javascript - NodeJS - 如何从另一个 require() 文件引用一个 require() 文件中的函数?

javascript - 我如何在 AngularJS 中为单个元素使用 ng 样式中的多个对象