【问题标题】:AngularJS input $valid is always false with no errorAngularJS 输入 $valid 始终为 false 且没有错误
【发布时间】:2015-08-21 09:33:25
【问题描述】:

我正在尝试在我的项目中应用 AngularJs 验证。于是写了如下代码:

 <form name="recipeTitle">
   <input ng-if="edit" required type="text" ng-model="recipe.name" name="name"/>
 </form>
 <span>valid = {ng recipeTitle.name.$valid ng}</span>
 <span>errors = {ng recipeTitle.name.$error ng}</span>

如果输入中没有输入值,则返回:

valid = false
errors = {"required":true}

当输入字段中出现任何值时,验证返回:

valid = false 
errors = {}

而且我不知道如何使 $valid 属性变为真。感谢任何帮助,谢谢。

【问题讨论】:

  • 例如,如果您提供一个 plunker 链接,帮助您会容易得多。
  • Plunker。但是具有最少必要更改的 plunker 代码可以按预期工作)
  • 如果没有其他工作,您可以通过 JavaScript 手动将 valid 设置为 true,如果 'errors' 为空,否则为 false,每次更改输入时
  • plunker 中的@Kamil 代码完美运行。
  • @Rebornix 是的,确实如此。而且我不知道我在我的应用程序中做错了什么。

标签: angularjs validation angularjs-directive frontend


【解决方案1】:

我有同样的问题。如果您使用 $scope,它会起作用:

<span>valid = {ng $scope.recipeTitle.name.$valid ng}</span>
<span>errors = {ng $scope.recipeTitle.name.$error ng}</span>

而不是

<span>valid = {ng recipeTitle.name.$valid ng}</span>
<span>errors = {ng recipeTitle.name.$error ng}</span>

【讨论】:

  • 感谢您的回答。我现在无法检查它,因为我们已经制定了解决方法,但我会检查它以帮助 smb。)
猜你喜欢
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多