【问题标题】:Angular [disabled] does nothingAngular [禁用] 什么都不做
【发布时间】:2018-09-12 09:41:26
【问题描述】:

我使用角度 6.2.1

它应该禁用提交按钮,但它什么也不做......

这没有任何作用 [disabled]="!heroForm.form.valid" 但是这个 [disabled]="heroForm.form.valid" 它可以工作,但这不是我想要的

当输入为空时,它应该禁用按钮,但它不会

当表单有效时 [disabled]="heroForm.valid" 禁用按钮,但这不是我想要的。我不知道为什么当输入为空时它是有效的,我在每个输入中都使用 required

<form #heroForm="ngForm" (ngSubmit)="hola()">
<div class="form-row">
      <div class="form-group col-md-6">
        <label for="inputEmail4">First Name</label>
        <input type="text" class="form-control" placeholder="First name" 
required>
      </div>
      <div class="form-group col-md-6">
        <label for="inputEmail4">Last Name</label>
        <input type="text" class="form-control" placeholder="Last name" 
required>
      </div>
    </div>
<button type="submit" class="btn btn-outline-primary" 
[disabled]="!heroForm.form.valid">Sign in</button>
  </form>

【问题讨论】:

  • 如果您用更多信息来清理您的问题,我们可能会想出一个答案。 (最后一部分没有意义,您使用的变量没有上下文)
  • 对不起,我写了但它消失了
  • 我认为堆栈溢出不直观

标签: html angular


【解决方案1】:

你可以试试[disabled] = “heroform.invalid”

这是一个例子 https://stackblitz.com/edit/angular-symxeg?file=src%2Fapp%2Fapp.component.html

您缺少输入字段上的 ngModel 属性和 name 属性,这就是 ngForm 不知道要验证什么的原因

【讨论】:

  • 我试过了,这在任何情况下都禁用了按钮,它不考虑表达式 [attr.disabled]="!heroForm.form.valid" 或这个 [attr.disabled]="!heroForm .valid" 它应该只在输入为空时禁用
  • 它只是在任何情况下禁用而不考虑表达式
  • 同样的结果,它不会禁用按钮,但是这个 [disabled]="heroForm.valid" 它禁用但我不想在它有效时禁用
  • 我认为这是一个角度问题,在我更新 angular cli 6.2.1 之前不会发生这种情况
  • 尝试无效而不是有效
【解决方案2】:

怎么样

<button type="submit" class="btn btn-outline-primary"
  [disabled]="!heroForm.valid">
  Sign in
</button>

【讨论】:

  • 我试过但还是一样,输入为空但按钮没有禁用
  • 它在 [disabled]="heroForm.valid" 时禁用按钮
猜你喜欢
  • 2020-08-18
  • 2016-04-09
  • 1970-01-01
  • 2019-03-08
  • 2016-12-24
  • 2017-04-18
  • 2011-08-03
  • 2014-05-11
  • 2014-09-10
相关资源
最近更新 更多