Angularjs使用电子邮件类型重置表单字段

时间:2013-04-19 22:53:30

标签: javascript angularjs

在AngularJs中,当您尝试“重置”表单时,通过将所有模型设置为空对象,如果输入为type="email",则不会清除此表单。但是,将其更改为type="text"可以正常工作,但在验证时会丢失红色边框。

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

谢谢!

3 个答案:

答案 0 :(得分:2)

仅供记录,请参阅OP注释以获得解释,并参阅此plunker进行演示。

答案 1 :(得分: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不会更新,重置后仍然会启用验证按钮...

答案 2 :(得分:0)

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