【问题标题】:Fetching Selected value from a dropdown list in Angular 8从Angular 8的下拉列表中获取选定值
【发布时间】:2019-07-02 04:26:33
【问题描述】:

我正在开发一个单页应用程序,在前端使用 Angular 8,在后端使用 Laravel。我有一个包含输入文本字段和下拉列表的表单。文本输入字段上的值在打字稿文件中被很好地捕获,但在捕获从下拉列表中选择的值时遇到问题,以便我可以在后端提交..

~请帮忙?

Create.component.html

<form #createForm=ngForm (ngSubmit)="onSubmit()">
    <div class="form-group row">
     <div class="col-sm-6">
        <label for="formGroupExampleInput">Child SurName</label>
        <input 
            type="text" 
            name="childSurName" 
            class="form-control" 
            id="childSurName" 
            placeholder="ChildSurName"
            [(ngModel)]="form.childSurName">
    </div>

    <div class="col-sm-6">
        <label for="child-gender">Child Gender</label>
        <select class="form-control" id="childGender" name="child-gender" required>
        <option value="" selected disabled> Child's Gender</option>
            <option value="Male"> Male</option>
            <option value="Female"> Female </option>
        </select>
    </div>
    </div>

    <div class="form-group row">
        <div class="col-sm-12">
            <button 
                type="submit" 
                class="btn btn-lg btn-success btn-block" 
                [disabled]="!createForm.valid">Save Details </button>
        </div>
    </div>
</form>

Create.component.ts

import { Component, OnInit } from '@angular/core';
import { AuthService } from 'src/app/Services/auth.service';
import { Router } from '@angular/router';
import { AuthCheckService } from 'src/app/Services/auth-check.service';

@Component({
  selector: 'app-create',
  templateUrl: './create.component.html',
  styleUrls: ['./create.component.css']
})

export class CreateComponent implements OnInit {

  public form = {
    childSurName: null,
    child-gender: null
  };

  public error = null;

  constructor(
       private Auth:AuthService,
       private router: Router,
       private AuthCheck : AuthCheckService) 
  { }

   //Submit form data to the backend via a function in he service file
   onSubmit(){
    this.Auth.submitFormData(this.form).subscribe(
      data => console.log(data),
      error => console.log(error)
    );
  }

  ngOnInit() {
  }

}

【问题讨论】:

    标签: angular forms drop-down-menu


    【解决方案1】:

    您的select 元素上似乎缺少[(ngModel)] 指令。

    【讨论】:

      【解决方案2】:

      将以下内容添加到&lt;select&gt;

      [(ngModel)]="form.childGender"
      

      为了保持一致性,将表单的键重命名为:

      public form = {
         childSurName: null,
         childGender: null
      };
      

      这是一个同样有效的stackblitz。 (请注意,提交时仅将表单记录到控制台)

      【讨论】:

      • 好的,,,只是澄清一下,下拉字段的默认文本似乎没有显示..
      • 默认情况下在您的 ts 中分配一个值,如下所示:form.childGender = 'Select Gender' 或尝试以下方法 &lt;option value="" style="display:none"&gt; Child's Gender&lt;/option&gt; &lt;option value="Male"&gt; Male&lt;/option&gt; &lt;option value="Female"&gt; Female &lt;/option&gt;
      • @BearNithi 非常感谢,请协助解决这个link 的问题,我是 Angular 的初学者..
      • @Nicholas ,, 非常感谢,, 请帮助我question
      猜你喜欢
      • 2018-10-12
      • 2018-05-04
      • 2019-03-07
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多