javascript - 仅当电子邮件有效时才允许用户单击按钮

标签 javascript angularjs angularjs-scope ng-class

我正在网络应用程序上使用angularjs。我正在尝试执行一些非常简单的事情。我有一个电子邮件输入和一个按钮。我只希望在输入有效电子邮件后启用按钮的功能。我试过:

<div>
    <p class="required">*</p>
    <input type="email" ng-model="email" placeholder="Enter Email" required>
</div>

<div class="btn-container" ng-class={true : 'validEmail', false : 'invalidEmail'}[email]>
    <div class="btn-go" ng-click="findUser();">Go!</div>
</div>

默认情况下,我希望按钮为蓝色。但是,一旦输入有效的电子邮件,按钮就会变成绿色。因此:

ng-class={true : 'validEmail', false : 'invalidEmail'}[email]

最佳答案

你在这里:

 ng-class="myForm.input.$valid ? 'valid' : 'invalid'" 

ng-class 检查输入是否有效,并返回 .valid.invalid 两个对应的类。

然后您可以使用 CSS 应用样式:

.valid {
  background: green;
}

.invalid {
  background: blue;
}

HTML 应该是这样的:

<form name="myForm" ng-controller="ExampleController">
  <label>Email:
    <input type="email" name="input" ng-model="email.text" required>
  </label>
  <div role="alert">
    <span class="error" ng-show="myForm.input.$error.required">
        Required!</span>
    <span class="error" ng-show="myForm.input.$error.email">
        Not valid email!</span>
  </div>
  <tt>text = {{email.text}}</tt>
  <br/>
  <button ng-class="myForm.input.$valid ? 'valid' : 'invalid'">Submit</button>
</form>

Controller 中:

var app = angular.module('plunker', []);

app.controller('ExampleController', ['$scope', function($scope) {
  $scope.email = {
    text: 'me@example.com'
  };
}]);

您还可以在按钮上使用 ng-disabled="myForm.input.$invalid" 使其在输入无效时不可用。

查看 Example

资源: input[email] , The many ways to use ngClass , ngDisabled

关于javascript - 仅当电子邮件有效时才允许用户单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865090/

相关文章:

javascript - react native Redux : Error Can't find variable mapStateToProps

javascript - 如何防止谷歌地理编码器从其他国家返回结果

javascript - 多个 JavaScript 函数的作用域

python - 从 Django 开发服务器的根目录提供静态文件

javascript - 表单提交时 Angular $scope 未定义

javascript - 需要使用java编码/转义html字符串并在javascript中解码html字符串

javascript - Protractor 点击功能并不总是有效

angularjs - Select2 标记输入失去值 AngularJS

angularjs - 在 angularjs 指令范围内公开对象,无法访问属性

javascript - Angular-检测范围的变化