validation
  • angular
  • angular2-forms
  • 2016-12-14 4364 views 6 likes 
    6

    Angular 2's documentation cho biết xác thực biểu mẫu. Nhưng chỉ cho các trường nhập văn bản. Câu hỏi của tôi là dành cho Radio Buttons.Xác thực nút radio 2 góc với ngModel

    Đây là HTML:

    <input type="radio" required name='gender' value='Male' [(ngModel)]='gender'>Male 
    <input type="radio" required name='gender' value='Female' [(ngModel)]='gender'>Female 
    <button type='button' [disabled]="??">Next<button> 
    

    Làm thế nào để thiết lập thuộc tính tàn tật là true nếu người dùng đã không được chọn bất kỳ giá trị.

    Trả lời

    6

    Với biểu mẫu được định hướng mẫu, bạn có thể hiển thị mô hình của mình thành biến cục bộ và truy vấn đối tượng lỗi.

    <form #f="ngForm"> 
        <input type="radio" value="male" name="gender" [(ngModel)]="gender" required #genderControl="ngModel"> Male 
        <input type="radio" value="female" name="gender" [(ngModel)]="gender" required> Female 
        <button [disabled]="genderControl.errors">Next</button> 
    </form> 
    
    
    export class App { 
        gender = null; 
    } 
    
    +2

    Bạn có thể thêm người plunker được không? Giải pháp của bạn không hoạt động với tôi –

    9

    Vì bạn không nói mà Forms Module (Phản ứng hay Template driven) bạn đang sử dụng đây là một hình thức phiên bản phản ứng:

    html

    <form [formGroup]="radioTest"> 
        <input type="radio" name="gender" value='Male' formControlName="gender" [(ngModel)]='gender'>Male 
        <input type="radio" name='gender' value='Female' formControlName="gender" [(ngModel)]='gender'>Female 
        <button type="button" [disabled]="radioTest.controls['gender'].invalid">Gender Button</button> 
    </form> 
    

    thành phần đang

    radioTest: FormGroup; 
    gender; 
    constructor(fb: FormBuilder) { 
        this.name = 'Angular2' 
        this.radioTest = fb.group({ 
        gender: ['', Validators.required] 
        }); 
    } 
    

    Đây là một Plunker: http://plnkr.co/edit/mWhYtc2nf8hSHFbLWlEx?p=preview

    +0

    Nhưng bạn thấy anh ta sử dụng ngModel. – Bazinga

    +0

    'ngModel' có sẵn trong Biểu mẫu phản ứng cũng như Định dạng mẫu. Một giveaway chết cho nó được đúng mẫu sẽ là '# inputVariable =" ngModel "' hoặc đánh dấu 'ngControl' một nơi nào đó trên đầu vào. Thay vào đó, mã chính xác mà anh ta đăng là mở để giải thích. Tôi biết bằng cách sử dụng 'ngModel' bindings trên các hình thức phản ứng nói chung là nản lòng trong tài liệu hướng dẫn, nhưng nó có sẵn. – silentsod

    0

    Không chắc chắn tại sao các câu trả lời khác đang cố gắn biến vào các phần tử radio, khi radio đã trở thành một phần của ngForm do đó thực hiện myForm.valid.

    Dưới đây là tôi:

    <form #f="ngForm"> 
        <input type="radio" value="male" name="gender" [(ngModel)]="gender" required> Male 
        <input type="radio" value="female" name="gender" [(ngModel)]="gender" required> Female 
        <button [disabled]="f.valid">Next</button> 
    </form> 
    

    Chỉ cần một f.valid nên làm.

    Các vấn đề liên quan