为什么angular2表单在html <form>元素
Why angular2 form works incorrectly with html <form> element?
我注意到ng2中<form>
元素的一些奇怪行为,我需要有人来解释一下:)
我已经创建了简单的普朗克的例子https://plnkr.co/edit/vdrHJBNdd26y6YhPXTHD?p=preview
现在它工作得很好。如果您输入一些值,点击"添加参数",输入值将在模型中更新并保存到输入字段中。
但是如果你像这样用<form>
元素包装你的<div>
https://plnkr.co/edit/vdrHJBNdd26y6YhPXTHD?p=preview然后在一个字段中输入smth,然后再次点击"添加参数",表单将刷新,您的值将消失(在模型中它仍然存在)。不知道为什么会这样。提前感谢您的回答。
原因是当form
通过ngFor
的帮助呈现all
其输入时,我们显示所有字段。但问题是所有元素都有相同的name属性即name="name"
&name="test"
。所以当新的输入被添加到name
值''
&type
this.types[0]
(String
)它对所有表单元素应用相同的值。
<form #form="ngForm">
<div *ngFor="let param of paramsList; let i=index">
<input type="text" [(ngModel)]="param.name" name="{{'name'+i}}">
<select [(ngModel)]="param.type" name="{{'type'+i}}">
<option *ngFor="let type of types" [ngValue]="type">{{type}}</option>
</select>
</div>
</form>
演示Plunkr
注意:
[attr.name]="'name'+i"
不工作
相关文章:
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- 使用javascript创建Form元素,并在不重定向/刷新的情况下提交
- 从FORM访问HTML元素的JavaScript函数的单元测试用例
- 正在删除Form元素.hide()正在删除值
- 在onChange事件上将Form元素值传递给Ajax Post方法
- 使用Form元素转换/更改Div元素
- 在使用AJAX请求时,我还需要Form元素吗
- 我应该担心在form元素中使用GET不会;t自动对尖括号进行URL编码
- 当标签中有form元素时,使用Query更改标签
- 如何在PHP中剥离html标记类和id,只保留form和it元素
- jQuery获取id中包含form的元素
- 将HTML元素文本替换为FORM,无法单击进入输入字段
- 具有可编辑元素的表单应该具有' edit - Form '属性
- 不能在Firefox中调用Form元素
- 防止window.opener.location.href form重载父元素
- javascript文件.form[0]和document.
有不同的元素 - 创建所有带有form-control类的form元素可编辑的
- 如何在form元素中将按钮标记为活动onclick
- 如何使Form元素在JS中引用时正确工作
- 是否可以添加自定义元素作为'form元素'在angularJs中使用ng-dirty和ng-质朴