gpt4 book ai didi

javascript - AngularJS - 在不删除验证错误的情况下设置原始表单

转载 作者:行者123 更新时间:2023-11-30 10:14:40 25 4
gpt4 key购买 nike

我们有一个特定表单的自动保存和显式保存(这是一个长表单,我们不希望用户丢失数据)。对于显式保存,无效数据将阻止保存发生,并且不会将 XHR 发送回服务器。但是,对于自动保存,我们希望保存数据(如果可能)而不管前端验证如何。

我们需要做的是,如果后端保存成功,前端应该将表单标记为不再脏。但是...这是标签 - 它应该从表单中删除任何验证错误/错误消息。

根据我所看到的(或者至少根据我的理解),.$setPristine() 将清除表单,但有问题的是,它还会删除验证错误。

有没有一种方法可以在不删除验证错误的情况下清除表单,以便自动保存在已经执行保存时不会运行,但用户仍然可以获得哪些字段无效的反馈,以便他们可以解决问题吗?

谢谢!

最佳答案

表单的$pristine/$dirty 状态没有连接到$valid/$invalid 状态.您的错误消息不应被删除(除非您在显示/隐藏消息的条件下使用 $pristine/$dirty)。


因此,您可以在自动保存功能中调用 FormController 的 $setPristine() 方法,这将“清除”表单,但不会影响验证和错误消息。


另请参阅此 short demo .

<子>例如:
* 在上面的 fiddle 中,在一个字段中输入一些内容(因此它变得有效并且表单变脏)。
* Save 按钮被启用。
* 按 Save 按钮将表单的状态设置为 $pristine,因此该按钮被禁用(这模拟了自动保存)。
* 错误消息仍然可见(并且表单的有效性状态没有改变)。

关于javascript - AngularJS - 在不删除验证错误的情况下设置原始表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com