【问题标题】:Angular, material form only say field is required after submit attempt角度,材料形式只说提交尝试后需要字段
【发布时间】:2015-03-31 14:56:59
【问题描述】:

我使用 angular-material 构建我的应用程序登录表单,并尝试使用与他们页面上的示例有所不同的方式。我只希望必填字段仅在用户尝试提交而不填写字段时对我大喊大叫。也许也禁用按钮?无论如何,如果用户只填写一个字段并按下回车键,我希望它显示“这是必需的”。现在它只是一直显示它,直到你填写它

这是我所拥有的:https://jsfiddle.net/5b1tsm2a/6/

我正在尝试他们示例页面中的代码 -

  <form ng-submit="authenticate()" name="loginForm">
        <md-input-container>
            <label>Username</label>
            <input name="name" reauired ng-model="loginInfo.username">
            <div ng-messages="projectForm.description.$error">
                <div ng-message="required">This is required.</div>
            </div>
        </md-input-container>

        <md-input-container>
            <label>Password</label>
            <input name="password" reauired type="password" ng-model="loginInfo.password">
            <div ng-messages="projectForm.description.$error">
                <div ng-message="required">This is required.</div>
            </div>
        </md-input-container>

        <md-button ng-click="authenticate()" class="md-primary btn btn-primary">Login</md-button>
    </form>

所以我正在使用所需的逻辑以及它下面的 ng-messages。我只想显示他们是否尝试在不填写任何内容的情况下提交。谢谢!

【问题讨论】:

标签: javascript angularjs angular-material


【解决方案1】:

更新您的代码如下:

<form ng-submit="authenticate()" name="loginForm">
        <md-input-container>
            <label>Username</label>
            <input name="username" ng-model="loginInfo.username" required/>
            <div ng-messages="loginForm.username.$error" ng-if='loginForm.username.$dirty'>
                <div ng-message="required">This is required.</div>
            </div>
        </md-input-container>

        <md-input-container>
            <label>Password</label>
            <input name="password" type="password" ng-model="loginInfo.password" required/>
            <div ng-messages="loginForm.password.$error" ng-if='loginForm.password.$dirty'>
                <div ng-message="required">This is required.</div>
            </div>
        </md-input-container>
        <md-button type="submit" class="md-primary btn btn-primary">Login</md-button>
 </form>

【讨论】:

  • 谢谢!如果您什么都不填写,有什么方法可以让它显示两者都是必需的 - 似乎只是说只有当您将两者都留空时才需要顶部(名称)。
  • 当您在多个输入字段中放置“必填”属性时,必填信息将随着字段的出现顺序出现。这是默认行为。是的,你可以改变。在 Angular 的帮助下使用您的自定义验证。检查这个:ng-newsletter.com/posts/validations.html
  • 这行得通吗?我原以为您需要在表单上包含 novalidate 属性并使用 loginForm.$submitted 而不是检查每个字段是否脏?
猜你喜欢
  • 2023-03-06
  • 2019-05-04
  • 2020-07-09
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2020-05-19
相关资源
最近更新 更多