5

在 AngularJs 中,似乎当您尝试通过将所有模型设置为空对象来“重置”表单时,如果输入是type="email"this 则不会被清除。但是,将其更改为type="text"有效,但随后您会失去验证的红色边框。

无论如何要重置或清除电子邮件类型输入?

谢谢!

4

3 回答 3

2

仅作记录,请参阅 OP 评论以获取解释,并查看此plunker进行演示。

于 2013-04-21T22:03:15.787 回答
1

就我而言,当使用绑定到带有ng-disabled指令的范围的验证表单按钮时,我必须使用双重重置逻辑:

<form>
    <input type="email" ng-model="formdata.email" />
    <button class="btn btn-warning cancel" type="reset" ng-click="formdata = {}">Clear</button>
    <button type="submit" ng-disabled="form.$invalid" />
</form>
  • type="reset":即使当前正在填充无效的电子邮件,也为了清除该字段(没有此属性,无效的电子邮件不会被 删除ng-click

  • ng-click="formdata = {}": 重新初始化所有作用域绑定。没有它,重置表单时,ng-disabled 不会更新,重置后验证按钮仍将启用......

于 2014-05-27T12:22:31.460 回答
0

原因是在电子邮件字段有效之前,模型尚未绑定。因此,当您这样做时myModel = {},文本字段会保留其无效的电子邮件。但是,如果您这样做myModel.Email = ''将清除文本字段

于 2014-07-18T15:09:04.267 回答