Angular:form。$ valid是false,但是form。$ invalid也是false

时间:2015-09-02 20:59:50

标签: javascript angularjs forms validation

在Angular中编写我自己的表单自定义验证时,我注意到有一些用例表单。$ valid将为false(因为如果输入不正确,我将设置它),但检查表单。 $ 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

1 个答案:

答案 0 :(得分:1)

他们是对立的。如果该值有效,则$validtrue$invalidfalse,如果值无效,则为{}。它与$dirty$pristine的情况相同。