gpt4 book ai didi

javascript - AngularJs setPristine() 不重置无效标志

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:13:53 25 4
gpt4 key购买 nike

任何人都可以帮助使用随附的 Plunker 吗??

只需提交仅输入一个必填字段的表单。这将触发验证错误。然后重置同时调用 setPristine 和 setUntouched 的表单 - 两者都应该重置表单但是都没有清除验证错误?

我希望清除表单中的数据,但也不显示任何验证消息(尽管我很欣赏数据是空白的,但实际上它是无效的)

即这个重置函数

$scope.reset = function(){
$scope.newQuestion = angular.copy(tempQuestion);

$scope.forms.setPristine();
$scope.forms.setUntouched();
};

Plunker example

最佳答案

  1. 您错误地调用了 setPristine() 和 setUntouched()。

    正确的语法是 formName.$setPristine()formName.$setUntouched()

    参见 this page了解更多详情

  2. 由于您在 中设置了 attempted=true,因此当您想要重置表单时,您还必须重置 attempted 的值。这将确保 ng-if 重新评估并且不会呈现错误消息。

所以reset()的正确代码如下:

$scope.reset = function(){
$scope.newQuestion = angular.copy(tempQuestion);

$scope.forms.newQuestion.$setPristine();
$scope.forms.newQuestion.$setUntouched();

$scope.attempted = false;

};

这是修改后的 Plunker

关于javascript - AngularJs setPristine() 不重置无效标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969456/

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