【发布时间】:2017-12-26 13:43:48
【问题描述】:
基本上我已经准备好 angularjs 验证,可以继续下面的示例。
<input type="text" maxlength="60" class="form-control" id="inputFirstName" name="firstName" placeholder="" ng-model="formData.firstName" required="">
<div ng-show="admission-form.$submitted || admission-form.firstName.$touched">
<span ng-show="admission-form.firstName.$error.required">First Name is required<br></span>
</div>
所以我可以让 css 在无效时突出显示该字段,但我仍然没有收到要显示的消息。我从 chrome 的开发工具中看到,ng-invalid-required 和 ng-touched 都在 firstName 输入上。我错过了什么?
其他一些注意事项: 我确实有名为 admission-form 的表单,但它位于另一个 html 文件中,并从 angular-ui-router 定向到它。所有的表单页面都嵌套在同一个控制器下。
如果还有其他有用的信息,请告诉我。我对 Angular 还是很陌生。
********编辑********
根据要求进行状态配置。该页面进入 index.html 嵌套 form.html 嵌套表单的每个页面。在personalInformation.html 页面中用于此输入的那个。
angular.module('admissionsApp', ['ui.router', 'ui.mask', 'ui.bootstrap'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
// route to show our basic form (/form)
.state('home', {
url: '/home',
templateUrl: 'home.html',
controller: 'HomeController'
})
.state('form', {
url: '/form',
templateUrl: 'form.html',
controller: 'FormController'
})
.state('form.personalInfo', {
url: '/personalInfo',
templateUrl: 'personalInformation.html'
})
【问题讨论】:
-
你也可以把你的状态配置放在一边
-
@ParvSharma 刚刚将其添加到原始帖子中。
-
您的表单上是否设置了
name属性?我没有办法快速检查它,但我不相信admission-form是一个正确的名称。尝试将其从name="admission-form"更改为name="admissionForm"然后<div ng-show="admissionForm.$submitted" ...... -
@TomekSułkowski .....哇,原来如此。没有意识到“-”是不允许的。非常感谢。如果您将其发布为答案,我会接受。
-
@Crash667 好的,我将添加一个带有实际推理的答案,所以它看起来并不神奇;)
标签: angularjs validation