Извлечение выбранного значения из раскрывающегося списка в Angular 8 - PullRequest
1 голос
/ 02 июля 2019

Я работаю над одностраничным приложением, используя 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() {
  }

}

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Добавьте следующее к <select>

[(ngModel)]="form.childGender"

Также для согласованности переименуйте ключ вашей формы в:

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

Вот рабочий stackblitz для того же.(Обратите внимание, что при отправке на консоль регистрируется только форма)

1 голос
/ 02 июля 2019
В вашем элементе select отсутствует директива

[(ngModel)].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...