在AngularJs中,当您尝试“重置”表单时,通过将所有模型设置为空对象,如果输入为type="email"
,则不会清除此表单。但是,将其更改为type="text"
可以正常工作,但在验证时会丢失红色边框。
无论如何重置或清除电子邮件类型输入?
谢谢!
答案 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 = ''
,则会清除文本字段