当前位置: 首页 > 知识库问答 >
问题:

Angular2 RC-故障排除禁用按钮

解阳荣
2023-03-14

这是我在这里的第一个问题,所以请告诉我是否做错了什么,以便我可以纠正它:)

我遇到了一些问题,无法使[diabled]标记在表单中的按钮上正确工作。

这里是我的模板:

<form #loginForm="ngForm">
      <label class="omwave">Identifiant</label>
      <input type="text" class="omwave" [(ngModel)]="login" placeholder="Identifiant" name="login" required>
      <label class="omwave">Mot de passe</label>
      <div class="input-group omwave">
        <input type="password" class="input-group-field omwave" [(ngModel)]="password" placeholder="Mot de passe" name="password" required>
        <div class="input-group-button">
          <button type="submit" (click)="goLogin()" value="submit" class="" [disabled]="!isValid"><img width="25px" src="imgs/start_service.png" alt="login_button"></button>
        </div>
      </div>
    </form>

这里是我的组件:

import {Component} from '@angular/core';
import {FORM_DIRECTIVES, NG_VALIDATORS, Validators, Control} from "@angular/common";

@Component({
  selector: 'login',
  templateUrl: 'app/core/templates/login.html',
  directives: [FORM_DIRECTIVES]
})

export class LoginComponent {
  protected login: string;
  protected password: string;

  constructor() {

  }
}

当我的两个输入登录名和密码为空时,得到了ng invalid属性,按钮为disable。但是如果我填写输入,他们得到了ng valid属性,但是我的按钮仍然被禁用,我不知道为什么,因为填写输入时表单是有效的。如果有人有想法,请:)如果你需要任何其他信息,我会尽力回答。

谢谢你的阅读。

祝好

共有2个答案

田成仁
2023-03-14

我想这会管用的,

<button type="submit" (click)="goLogin()" value="submit" class="" [disabled]="!loginForm.form.valid"><img width="25px" src="imgs/start_service.png" alt="login_button"></button>
赵镜
2023-03-14

我将使用以下基于Angular2的内联表单支持:

<form #loginForm="ngForm">
  <label class="omwave">Identifiant</label>
  <input type="text" class="omwave" [(ngModel)]="login" 
         placeholder="Identifiant" name="login"
         ngControl="name" required> <--------
  <label class="omwave">Mot de passe</label>
  <div class="input-group omwave">
    <input type="password" class="input-group-field omwave" 
         [(ngModel)]="password" placeholder="Mot de passe"
         ngControl="password" name="password" required> <-------
    <div class="input-group-button">
      <button type="submit" (click)="goLogin()" value="submit" 
          class="" [disabled]="!loginForm.valid"> <------
        <img width="25px" src="imgs/start_service.png" alt="login_button">
      </button>
    </div>
  </div>
</form>

在您的情况下,我不知道如何处理isValid属性以及它对应的内容。您可以直接依赖表单状态(loginForm)及其valid属性。

 类似资料:
  • 初始设置 在创建并启动新的 Serene 应用程序之后,不能显示登录页,而当你打开浏览器控制台,却得到一条错误消息:找不到 Template.LoginPanel: 你可能使用了无效的解决方案名称,如 MyProject.Something (包含点’.’)。 当项目以这种方式命名时,模板系统将不能定位模板。 请不要在解决方案名称中使用点符号(’.’),如果必须使用点符号,可在创建解决方案之后再重

  • 当使用 Gradle 时, 你肯定会碰到许多问题. 解决遇到的问题 如果你碰到了问题, 首先要确定你使用的是最新版本的 Gradle. 我们会经常发布新版本, 解决一些 bug 并加入新的功能. 所以你遇到的问题可能就在新版本里解决了. 如果你正在使用 Gradle Daemon, 先暂时关闭 daemon (你可以使用 switch —no-daemon 命令). 在第19章我们可以了解到更多关

  • 在Debian和Ubuntu上,当您安装标准的FreeRADIUS软件包时,FreeRADIUS服务器二进制文件称为freeradius而不是radiusd。 您可以创建将使用较慢服务器的ldap模块的命名实例。 然后,您可以使用冗余部分替换authorize部分中的ldap条目,该冗余部分首先使用快速LDAP服务器列出模块,然后使用较慢的部分使用ldap模块实例。 #ldap redundant

  • Mount 5 Error mount 5 错误通常是 MDS 服务器滞后或崩溃导致的。要确保至少有一个 MDS 是启动且运行的,集群也要处于 active+healthy 状态。 Mount 12 Error mount 12 错误显示 cannot allocate memory ,常见于 Ceph 客户端和 Ceph 存储集群版本不匹配。用以下命令检查版本: ceph -v 如果 Ceph

  • 从 Vert.x 3.4.0 开始,Vert.x 已经弃用 JGoups 实现,已经由 [infinispan]|(/clustering/Infinispan.md) 。不建议在生产或测试环境中使用 JGroups Cluster Manager 在构建工具中添加依赖即可: Maven(pom.xml) <dependency> <groupId>io.vertx</groupId> <

  • 一般 在询问任何人之前, 请先运行 composer diagnose 检查是否存在常见问题。如果全部检出,请继续执行后续步骤。 使用 Composer 遇到任何问题时,请务必使用最新版本。有关详细信息请参阅 self-update  通过运行安装程序的检查,确保您的设置没有问题 curl -sS https://getcomposer.org/installer | php -- --check