如何在表单验证时清除单词/图像? (AngularJS)

时间:2014-08-15 20:07:30

标签: image angularjs forms validation required

为了清楚起见,在主题行中,它表示“单词/图像”。 “单词”部分不是关于清除表单中的单词,而是单词“required”。至于图像,这些是验证图像,如绿色复选标记。

我刚刚意识到我不知道在AngularJS中如何在表单完成时清除单词/图像。基本上,复选标记保留,并在提交经过验证的表格后出现“required”字样。它这样做,因为现在表格是空的。我尝试在脚本页面中使用$ setPristine,

$scope.imgHolderComments.$setPristine(true);

知道它可能不起作用。我找了一个解决方法,所以我检查了这个令人印象深刻的线程(但意识到这更多用于验证本身而不是添加单词/图像)。

Reset form to pristine state (AngularJS 1.0.x)

然后我尝试使用我之前用过的代码进行预验证。或者,如果您愿意,在提交表单之前进行实时验证。我以为我可以回收这个,但没有。

$scope.checkUrl = 'images/validation/y_square_trans.png';
            $scope.loadUrl = 'images/validation/loading.gif';
            $scope.crossUrl = 'images/validation/loading_wrong.gif';
            $scope.imgHolderComments = '';
            $scope.comments = "";
            $scope.timeout = null;
            $scope.imgHolderComments = ($scope.reviewForm.comments.$invalid) ? $scope.crossUrl : $scope.crossUrl;

看起来很脏,但认为在推送数据之后它可以工作。但是图像停留在那里(正如你所看到的,我尝试用十字架替换复选标记,因为我不想创建一个空白的图片)。

我也用Google搜索了,但我发现的一切都与两件事有关:清除表格并删除彩色框(红色/绿色)。当然,我的表格已经做到了。所以,我仍然试图在成功验证后找到一种方法来删除“required”和gif图像。

无论如何,我创造了一个plunker。您必须单击“评论”一词才能显示表单。

http://embed.plnkr.co/QZT1Jzgg9elMMRHwhYel/preview

1 个答案:

答案 0 :(得分:0)

查看指令ng-showng-hide

您可以在控制器的某个位置设置$scope.allGood = true;(验证后)并使用此指令:<span ng-hide="allGood">Required</span>

修改 您可能还想查看ng-class指令。例: <span ng-class="{green: allGood == 1}">Name:</span>显然可以根据您的需要设置班级green