Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问包含数字的angularjs表单字段_Angularjs_Forms - Fatal编程技术网

访问包含数字的angularjs表单字段

访问包含数字的angularjs表单字段,angularjs,forms,Angularjs,Forms,我有一个表单字段列表,这些字段是通过ng repeat生成的。因此,我使用重复循环的{$index}}来命名字段,即`这导致: <input name="myInput0"> <input name="myInput1"> <input name="myInput2"> ... ... 等等。现在我试图以标准的angularjs方式从表单中访问字段“$valid属性,即myForm.myInput{{$index}.$valid,解析为例如myForm.

我有一个表单字段列表,这些字段是通过
ng repeat
生成的。因此,我使用重复循环的{$index}}来命名字段,即`这导致:

<input name="myInput0">
<input name="myInput1">
<input name="myInput2">
...

...
等等。现在我试图以标准的angularjs方式从表单中访问字段“
$valid
属性,即
myForm.myInput{{$index}.$valid
,解析为例如
myForm.myInput0.$valid
,我理解它不起作用,因为它正在访问一个变量,并且不允许使用数字

然而,我随后尝试使用
myForm['myInput{{$index}}].$valid
,例如
myForm['myInput0'].$valid
访问它,我认为这可能有效,但仍然无效。当表单字段包含数字时,是否有任何方法可以访问表单字段?(或其他非法字符,如连字符)


e:我使用的是angularjs 1.2,这也许可以解释为什么它不起作用。有人知道1.3之前的angular的解决方法吗?

正确的表达式将类似于
myForm['myInput'+$index]。$valid
我可以想出两种解决方法

第一种选择:

在每个输入上放置一个ng更改,并在那里手动验证它

第二种选择:

检索所有输入元素,对每个元素进行交互并手动验证

你可以用这个得到它们

var inputs = $document[0].querySelectorAll('#rankingForm input');

据我所知,这样做是有可能的,
myForm.myInput0.$valid
即使它以一个数字结尾,你能添加一个plunker或jsfiddle吗?我刚刚意识到它可能是我正在使用的angularjs的版本,我被困在1.2.19上,我相信我正在尝试做的只是在1.3+中可用?我认为这在angularjs 1.2中不起作用是正确的吗?一开始我忘了在问题中提到。是的,你说得对。这适用于1.3+。1.2不支持输入的动态名称。公平地说,您回答了我最初提出的问题,因此如果明天没有人有解决办法,我将对此进行检查,因为我相信您会在这里找到您最终想要实现的目标-