【问题标题】:AngularJS form validation is always trueAngularJS 表单验证总是正确的
【发布时间】:2015-05-27 15:25:45
【问题描述】:

loginForm.$valid 始终返回 true,即使未填写必填字段也是如此。我无法在任何地方找到类似的问题。

<form name="loginForm" 
      class="form-login" 
      ng-submit="loginForm.$valid && loginCtrl.login(navCtrl)" 
      novalidate>

    <div class="form-group">
        <label for="email">Username:</label>
        <input type="email" class="form-control" id="username" placeholder="Enter username" required>
    </div>

    <div class="form-group">
        <label for="pwd">Password:</label>
        <input type="password" class="form-control" id="pwd" placeholder="Enter password" required>
    </div>

    <div class="form-group text-right">
        <a href="#">Forgot password?</a>
    </div>
    <div>Login form is {{loginForm.$valid}}</div>
    <button type="submit" class="btn btn-default">Login</button>
</form>

感谢任何帮助。

【问题讨论】:

    标签: javascript angularjs twitter-bootstrap


    【解决方案1】:

    仅当您将ng-model 控制器分配给相应的控件时,才会设置表单验证和相关标志。所以分配ng-model 指令给他们。您也可以使用name,而不是使用id。然后它将用作分配在 formController 实例上的相应 ng-model 控制器的别名(属性名称)(例如:loginForm.username.$valid)。

    <div class="form-group">
            <label for="email">Username:</label>
            <input type="email" class="form-control" 
             ng-model="ctrl.userName"
             name="username" placeholder="Enter username" required>
        </div>
    
        <div class="form-group">
            <label for="pwd">Password:</label>
            <input type="password" class="form-control" 
               ng-model="ctrl.password"
               name="pwd" placeholder="Enter password" required>
        </div>
    

    【讨论】:

    • 成功了,谢谢;但是,现在即使填写了两个字段,该表格也永远不会有效。 E:没关系,我没有输入有效的电子邮件。对不起!
    【解决方案2】:

    我也有这个问题。答案是 required 语法不存在。
    所以提交表单总是有效的。

    【讨论】:

    • 问题中的示例是使用required 属性。
    • 我知道,但在我的情况下,我在 angular 8 中遇到了这个问题,这是因为所需的语法
    【解决方案3】:

    记住。

    如果您使用 Angular 5 材料设计并在输入字段中使用 [ngModelOptions]="{standalone: true}" 将其设为 false ==> [ngModelOptions]="{standalone: false}"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多