【问题标题】:AngularJS: $setPristine() doesn't clear input types of 'URL'AngularJS:$setPristine() 不清除“URL”的输入类型
【发布时间】:2023-03-19 00:30:02
【问题描述】:

我刚刚找到并开始使用 $setPistine() 函数来实际清除表单并清空所有字段。

我遇到了一些问题,它似乎适用于标准

   input type='text'

但“url”的输入类型并不清楚。

我这里有一个 jsfiddle

      http://jsfiddle.net/martinlondon/Urt5K/2/

实际上,我在标准文本输入类型上遇到了类似的问题,但附加了一个 cusotm 验证指令,这对我来说并不重要,因为我可以访问验证代码。

但是输入类型 ='url' 应该可以工作。

有人有什么想法吗?

谢谢

编辑

更新的提琴手是不是不正确。

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    setPristine() 不应该清除输入,只标记用户没有更改其值(参见docs,搜索“$pristine”)。

    例如您加载一个表单,“价格:”字段显示“100 欧元”。此时pristine=true。您将其更改为“200 欧元”:pristine=false。您以某种方式重置表单,值返回“100 €”,pristine 变为 true。如果您清除此字段,则它已更改,因此为pristine=false

    【讨论】:

    • 谢谢,是的,但随着清除模型?即 $scope.myform = {}; $scope.formName.$setPristine();
    • Nikos,我将把这个问题标记为已回答,正如您指出的 setPristine 正在按预期工作。我在 type='url' 上的模型更新有另一个问题,我会提出另一个问题。
    • 但是,是的,为了清除表单并将其标记为原始,您可以按照$scope.myform = {}; $scope.formName.$setPristine(); 的方式进行操作。实际上,如果您使用的是$pristine 基础架构,那么您可能应该在每次为表单设置值时使用$setPristine()
    猜你喜欢
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2016-08-26
    相关资源
    最近更新 更多