这是my form哪个工作正常,但有2个问题令我感到困惑
1)当用户点击所需的输入框并离开时,它会在文本下方出现错误,但仍然禁用重置按钮;如何在出错时启用重置按钮,以便我可以删除输入框下方的错误。我添加了
ng-disabled="movieForm.$pristine"
;在重置按钮;我是否需要添加其他内容
2)当我在电影年份框中写入无效条目时,即出现字符串而不是年份而不是错误;我点击重置按钮;它清除了框值但是启用了保存按钮。这是不可取的。
请帮助解决此表单问题
答案 0 :(得分:3)
将required
更改为ng-required="true"
,您就完成了。
编辑:
对于重置按钮问题,我认为您应该始终启用它。如果在表单为空时禁用用户,则无法以任何方式帮助用户。
这里的问题是你想用这个按钮来“破解”这个行为。重置后,表单仍然无效,您只想通过设置$untouched
来隐藏消息。您可以添加更多逻辑来检查表单是否无效和空,或者只是无效,或者只是重置等。或者保持启用按钮并保持简单。您可以在更新的plunker中查看它的工作原理。
答案 1 :(得分:1)
你需要做两件事:
要更改重置按钮的代码,应该是:
data.new
您需要更改控制器的重置功能,它应该是:
<input type="button" value="Reset" class="btn btn-info" ng-disabled="movieForm.$pristine && movieForm.mName.$untouched && movieForm.mStar.$untouched && movieForm.mYear.$untouched" ng-click="reset()"/>