在 AngularJs 中,似乎当您尝试通过将所有模型设置为空对象来“重置”表单时,如果输入是type="email"
this 则不会被清除。但是,将其更改为type="text"
有效,但随后您会失去验证的红色边框。
无论如何要重置或清除电子邮件类型输入?
谢谢!
在 AngularJs 中,似乎当您尝试通过将所有模型设置为空对象来“重置”表单时,如果输入是type="email"
this 则不会被清除。但是,将其更改为type="text"
有效,但随后您会失去验证的红色边框。
无论如何要重置或清除电子邮件类型输入?
谢谢!
仅作记录,请参阅 OP 评论以获取解释,并查看此plunker进行演示。
就我而言,当使用绑定到带有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 不会更新,重置后验证按钮仍将启用......
原因是在电子邮件字段有效之前,模型尚未绑定。因此,当您这样做时myModel = {}
,文本字段会保留其无效的电子邮件。但是,如果您这样做myModel.Email = ''
将清除文本字段