在表单验证中使用$ pristine AngularJS

时间:2015-10-05 20:11:02

标签: angularjs validation

我有一个带有角度验证的表单,我不想在页面加载时运行。这是我的表格的简要示例:

<form ng-submit="vm.submit()" name="form" novalidate>
    <input class="form-control" ng-model="vm.userName" required />
    <button ng-disabled="form.$invalid && !form.vm.userName.$pristine" type="submit">Log In</button>
</form>

我正在尝试使用!form.vm.userName。$ pristine关闭初始验证,因为用户还没有触及用户名文本框。但是,这不起作用,表单在页面加载时照常验证。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您需要为输入命名,以便ngFormController可以在其下注册此元素及其验证规则。然后,您就可以查看form.userName.$pristine

<form ng-submit="vm.submit()" name="form" novalidate>
    <input class="form-control" name="userName" ng-model="vm.userName" required />
    <button ng-disabled="form.$invalid && !form.userName.$pristine" type="submit">Log In</button>
</form>