angularjs - 使用AngularJS禁用母版页中的按钮
问题描述
我有以下母版页:
<body ng-app="app" ng-controller="controller" ng-cloak>
<div class="header" ng-bind="header"></div>
<div class="content">
<!-- This content will switch -->
<ui-view></ui-view>
</div>
<div class="footer" ng-show="showFooter">
<md-button class="md-raised md-primary" ng-click="cancel()">Cancel</md-button>
<md-button class="md-raised md-primary" ng-click="ok()">OK</md-button>
</div>
以及以下<ui-view>
标签中的添加联系人页面:
<form name="form">
<button class="round-button"></button><br />
<md-input-container>
<input name="name" ng-model="name" placeholder="Name" minlength="3">
<div ng-messages="form.name.$error" ng-show="form.name.$dirty">
<div ng-message="required">This is required.</div>
<div ng-message="minlength">Name has to be at least 3 characters long.</div>
</div>
</md-input-container>
<br />
<md-input-container>
<label>Phone</label>
<input name="phone" ng-model="phone" placeholder="Phone" ng-pattern="/^[0]{1}[5]{1}[0-9]{1}[0-9]{7}$/">
<div ng-messages="form.phone.$error" ng-show="form.phone.$dirty">
<div ng-message="required">This is required.</div>
<div ng-message="pattern">Please enter a valid phone number.</div>
</div>
</md-input-container>
<br />
<md-input-container>
<label>Mail</label>
<input name="mail" ng-model="mail" placeholder="Mail" ng-pattern="/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/">
<div ng-messages="form.mail.$error" ng-show="form.mail.$dirty">
<div ng-message="pattern">Please enter a valid mail.</div>
</div>
</md-input-container>
<br />
</form>
我的添加联系人页面的控制器如下:
controller: function ($scope, $state, $rootScope,$http) {
$rootScope.cancel = function () {
$state.go("contacts");
};
$rootScope.ok = function () {
var contactInfo = {
name: $scope.name,
phone: $scope.phone,
mail: $scope.mail,
address: $scope.address
};
$http.post("/api/Contact", contactInfo)
.then(function (res) {
alert("contact added successfully");
});
$state.go("contacts");
};
$rootScope.header = "Add Contact";
$rootScope.showFooter = true;
在我使用 调用 Web 服务之前$http
,我希望禁用母版页中的 OK 按钮,直到正确填写表单中的所有字段。
有没有办法实现这个目标?
解决方案
您应该能够通过在按钮上放置一个 ng-disabled 指令并让它检查表单是否有效来完成此操作。
<md-button class="md-raised md-primary" ng-disabled="!form.$valid" ng-click="ok()">OK</md-button>
推荐阅读
- reactjs - 如何在不渲染另一个组件或重定向到 React 中的不同路由的情况下更改 URL?
- android - Android Studio 背景颜色不显示
- java - 如何显示和隐藏现有的 JFrame
- azure-devops - Azure Pipeline Build 中的代码覆盖率屏幕挂起
- neural-network - GloVe 嵌入 - 未知/词汇外标记
- c# - 在 Aspnet Core 中获取所有应用程序定义的配置作为键/值
- ios - 在 Appstore 之外向公共用户分发 iOS 应用程序
- google-cloud-platform - 无法使用 Java SocketFactory 库连接到 Cloud SQL
- javascript - Vuetify.js 网格系统未按预期对齐
- java - SpringBoot 2.1.0 尝试集成数据库访问时抛出 ClassNotFoundException