2013-05-20 35 views

Trả lời

403

yếu tố biểu mẫu AngularJS tìm thuộc tính required để thực hiện các chức năng xác thực. ng-required cho phép bạn đặt thuộc tính required tùy thuộc vào thử nghiệm boolean (ví dụ: chỉ yêu cầu trường B - , số sinh viên - nếu trường A có giá trị nhất định - nếu bạn chọn "sinh viên" làm lựa chọn)

Như một ví dụ, <input required><input ng-required="true"> cơ bản là điều tương tự

Nếu bạn đang tự hỏi tại sao đây là cách này, (và không chỉ làm cho <input required="true"> hoặc <input required="false">), đó là do những hạn chế của HTML - thuộc tính required không có giá trị liên quan - sự hiện diện đơn thuần của nó (theo tiêu chuẩn HTML) mà phần tử là bắt buộc - vì vậy góc cần một cách để đặt/bỏ đặt giá trị yêu cầu (required="false" sẽ là HTML không hợp lệ)

+0

Làm cách nào tôi có thể xóa ng-yêu cầu tương ứng? Bởi vì tôi đã thử một số phương pháp jquery không thành công – themis

+28

Tôi không chắc chắn tôi hiểu câu hỏi .. Trong thực tế, bạn không bao giờ sử dụng ng-required = "true", mà là ng-required = "scopedVariable" hoặc ng-required = " scopeTruthTest() "và giá trị của biến/hàm xác định xem phần tử có bắt buộc hay không.Không bao giờ sử dụng jquery để mess với những điều này trong một ứng dụng góc cạnh, hoặc bạn sẽ có kết quả không thể đoán trước! –

+0

Giá trị của nó đề cập rằng ng-yêu cầu hiển thị thông báo lỗi kiểu công cụ mặc định cho biết 'trường này là bắt buộc', không phải lúc nào cũng mong muốn. Tôi đang tìm cách tắt nó đi –

76

Tôi muốn tạo thêm cho tiago's answer:

Giả sử bạn đang ẩn yếu tố sử dụng ng-show và thêm một thuộc tính required trên cùng:

<div ng-show="false"> 
    <input required name="something" ng-model="name"/> 
</div> 

sẽ ném một cái gì đó lỗi như:

Một điều khiển biểu mẫu không hợp lệ với tên = '' là không thể đặt tiêu điểm

này là bởi vì bạn không thể áp đặt required xác nhận trên hidden yếu tố. Sử dụng ng-required giúp dễ dàng hơn để có điều kiện áp dụng yêu cầu xác thực thật tuyệt vời !!

+11

Chắc chắn là một mẹo tốt, và bạn cũng có thể sử dụng 'ng-if' thay vì' ng-show'/'ng-hide' để tránh sự cố tiềm tàng đó. – jkjustjoshing

+1

Đây phải là câu trả lời được chấp nhận. Nếu bạn có các phần tử ẩn (ng-show = "false"), có sự khác biệt giữa ng-required = "true" và chỉ cần "required" như được mô tả trong câu trả lời này và chúng tôi đã nhận được nước nóng vì sự khác biệt này. –

16

Các HTML thuộc tínhrequired="required" là một tuyên bố cho trình duyệt biết lĩnh vực này là cần thiết để cho các hình thức có giá trị. (required="required" là hình thức XHTML, chỉ sử dụng required tương đương)

Các góc thuộc tínhng-required="yourCondition" phương tiện 'isRequired (yourCondition)' và thiết lập các thuộc tính HTML động cho bạn tùy thuộc vào tình trạng của bạn.

Cũng lưu ý rằng phiên bản HTML là khó hiểu, nó là không thể viết một cái gì đó có điều kiện như required="true" hoặc required="false", chỉ có sự hiện diện của những vấn đề thuộc tính (hiện tại có nghĩa là true)! Đây là nơi Angular giúp bạn với ng-required.

+0

Rất tiếc, trình duyệt không cho phép đặt đúng/sai, có thể được coi là quá kỹ thuật ... –

+3

Đây phải là câu trả lời được chấp nhận. – AsGoodAsItGets

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