【问题标题】:Angular Material 2 md-select required not working on form submitAngular Material 2 md-select 需要在表单提交上不起作用
【发布时间】:2018-01-02 00:50:57
【问题描述】:

我创建了一个带有文本框和下拉菜单的简单表单。两者都是必需的。

当我点击提交按钮时,文本框变成红色,而下拉菜单没有改变。

这里是 plunkr: https://embed.plnkr.co/oSe3JCMlB4jBNsjOgUoc/

当用户点击提交按钮时,我希望两个字段都变成红色。

我想念什么?

【问题讨论】:

  • 你想让下拉菜单显示为红色还是两者都不显示?

标签: angular angular-material2


【解决方案1】:

我相信这是因为required 验证器会检查FormControl 是否为touched

您可以按照this question 中的说明手动执行此操作

submit(form) {
    this.form.get('test2').markAsTouched()
    console.log(form)
}

最好使用(ngSubmit),而不是提交按钮上的点击事件。

Live plunker example

【讨论】:

  • 是的,它有效!但是即使我不触摸它,文本框验证也有效。不是bug吗?
  • 老实说,我不知道 - 我已经搜索了一些,但找不到任何关于它的信息。也许其他人可以解释一下,我会更新我的答案
【解决方案2】:

你有

'test1': new FormControl("", Validators.required)

在您的代码 (select-form-example.ts) 中,它告诉 angular 它是一个必填字段,因此红色框表示验证失败。试试

'test1': new FormControl("")

【讨论】:

  • 我认为他问的是相反的问题 :) 希望他能澄清!
  • 我希望用户点击提交按钮时两个字段都变成红色!
  • 标题说“md-select required not working on form submit”... md-select 是必需的,但它不起作用。我更新了问题,希望现在清楚。
  • 很公平!我删除了评论。
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多