Javascript Angularjs重置电子邮件类型的表单字段

Javascript Angularjs重置电子邮件类型的表单字段,javascript,angularjs,Javascript,Angularjs,在AngularJs中,当您试图通过将所有模型设置为空对象来“重置”表单时,如果输入是type=“email”,则不会被清除。但是,将其更改为type=“text”会起作用,但在验证时会丢失红色边框 是否有重置或清除电子邮件类型输入的方法 谢谢 仅为了记录,请参考OP注释以获取解释,并查看此演示。在我的情况下,当使用绑定到禁用了ng指令的范围的验证表单按钮时,我必须使用双重重置逻辑: <form> <input type="email" ng-model="formda

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

是否有重置或清除电子邮件类型输入的方法


谢谢

仅为了记录,请参考OP注释以获取解释,并查看此演示。

在我的情况下,当使用绑定到禁用了ng指令的范围的验证表单按钮时,我必须使用双重重置逻辑:

<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单击删除

  • ng click=“formdata={}”
    :重新初始化所有作用域绑定。否则,当重置表单时,ng disabled将不会更新,并且重置后验证按钮仍将启用


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

您是否尝试过按钮type=“reset”?我在标记中清除,我在另一个
ng上清除,单击
并执行
$scope.myModels={}
我用另一个按钮更新了plunker,点击ng触发一个函数,这个函数只需执行
$scope.item={}
就可以了。啊,我看到了区别。如果我输入了一个无效的电子邮件地址,它将无法清除。只有在验证完成后,type=“reset”按钮才能工作,即使电子邮件无效,但另一个按钮只能在验证如您所说完成时工作。