简体   繁体   English

如何以表格形式传递隐藏值?

[英]How to pass hidden value in a form?

<p>{{item.name}}</p>         // Please note that this works and shows fine
<form #f="ngForm" (ngSubmit)="onSubmit(f.value)" novalidate>
    <div *ngIf="editMode">
        <input name="name" type="hidden" ngModel value="{{item.name}}"> 
        <input name="eat1" type="text" ngModel > 
        <input name="eat2" type="text" ngModel >
        <button>Submit</button>
    </div>
</form>

I am able to pass eat1 and eat2 as expected, but don't see name . 我能够按预期方式通过eat1eat2 ,但看不到name

Here's the output: 这是输出:

{name: "", eat1: "Bacon", eat2: "Egg"}

Should be: 应该:

{name: "Breakfast", eat1: "Bacon", eat2: "Egg"}

These didn't work: 这些不起作用:

 <input name="name" type="hidden" ngModel value="item.name"> 
 <input name="name" type="hidden" ngModel value={{item.name}}> 

You can set the value to the ngModel attribute and it should work: 您可以将值设置为ngModel属性,它应该可以工作:

Had created a Stackblitz Demo for your reference. 已创建了Stackblitz演示供您参考。

 <input name="name" type="hidden" [ngModel]="item.name"> 

Remove value attribute and set ngModel={{your_value}} because you are using ngModel and value at a time: 删除value属性并设置ngModel={{your_value}}因为您一次使用ngModel和value:

HTML Code: HTML代码:

<form #f="ngForm" (ngSubmit)="onSubmit(f.value)" novalidate>
    <div *ngIf="editMode">
        <input name="name" type="hidden" ngModel="{{item.name}}"> 
        <input name="eat1" type="text" ngModel> 
        <input name="eat2" type="text" ngModel>
        <button>Submit</button>
    </div>
</form>

StackBlitz Example StackBlitz示例

try a hidden input: 尝试隐藏的输入:

<input type="hidden" value="some-thing" name="eat1" />

Hope this will work for 希望这会为

javascript doesn't include elements that're hidden. javascript不包含隐藏的元素。

what you should to is to serialize the form , then append the hidden element to the resultant object. 您应该要做的是序列化表格 ,然后将隐藏的元素附加到生成的对象上。

note that this is in javascript, apply this concept to Angular 请注意,这是在javascript中,将此概念应用于Angular

let obj = form.serializeArray(); // expected result: {name: "", eat1: "Bacon", eat2: "Egg"}

// update name key
obj['name'] = document.querySelector('input[name="name"]');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM