8

Tôi đã sử dụng phương pháp được mô tả here để bản địa hóa thông báo chú thích dữ liệu của tôi và về cơ bản nó hoạt động tốt trong các bài đăng biểu mẫu bình thường. Tôi cũng có thể thấy thông báo xác thực được bản địa hóa trên phía máy khách.Xác thực không phô trương jQuery bỏ qua thông báo yêu cầu dữ liệu trong MVC3

Tuy nhiên, sự cố xảy ra khi tôi có một chế độ xem một phần có trường nhập được xác thực và được tải bằng cách sử dụng cuộc gọi ajax. Vì một lý do nào đó, tôi nhận được thông báo xác thực mặc định ("Trường này là bắt buộc") thay vì thông điệp đã bản địa hóa của tôi được đặt trong thuộc tính data-val-required của phần tử.

Tôi đã xác minh những điều sau đây:
1. Tôi đã bao gồm cả "jquery.validate.min.js" và "jquery.validate.unobtrusive.min.js".
2. Tôi đã kiểm tra phản hồi ajax và nó chứa thuộc tính data-val-required với thông điệp được bản địa hoá.

Tôi đã thử các giải pháp sau:
1. Tôi đã cố gắng phân tích các phản ứng ajax (mà không làm việc) như $ .validator.unobtrusive.parse ('form')
2. Phân tích nội dung động cho xác thực như mô tả here. Vẫn không có giải pháp.

Tôi có thời hạn báo chí và điều này gây phiền hà cho tôi.

+0

Bạn đang cố gắng để xác nhận ngay lập tức sau khi thêm nội dung từ một phần, hoặc là nội dung động nộp bình thường với phần còn lại của mẫu? –

+0

Nội dung động được gửi bình thường với phần còn lại của biểu mẫu. – sprisoner

+0

Cuối cùng đã có một bước đột phá. Có hai biểu mẫu trong trang của tôi, một trang trong trang chỉ mục và một trong trang một phần. Các nút bấm có biểu mẫu sẽ được gửi trên trang chỉ mục. Tôi di chuyển các nút trong trang một phần để nó nằm bên trong phần tử biểu mẫu của trang một phần, và lo! nó hoạt động tốt. Mặc dù vấn đề được giải quyết, tôi không biết nguyên nhân gây ra sự cố và cách di chuyển các nút ở dạng bên trong nhất đã giải quyết được vấn đề đó? Vấn đề của tôi được giải quyết nhưng nếu ai đó có thể giúp tôi hiểu nguyên nhân, tôi có thể đánh dấu nó là câu trả lời và đóng câu hỏi này. – sprisoner

Trả lời

3

Tôi nghĩ bạn đã thử điều này: stackoverflow.com/questions/4406291/jquery-validate-unobtrusive-not-working-with-dynamic-injected-elements - câu trả lời của Steve Lamb đã giúp tôi nhiều nhất.

Về cơ bản, bạn cần phải khởi tạo các validator bất cứ khi nào bạn thay đổi nội dung trang, vì mã xác nhận xây dựng một danh sách để theo dõi các điều khiển cần thiết để xác nhận một lần duy nhất, trên tải trang ...

tôi cũng dường như phải thêm một số mã phụ để đi qua và đảm bảo các đầu vào được đặt tên chính xác. Hãy cho tôi một chút thời gian và tôi sẽ khai thác mã. - hmm, xin lỗi, mã đó là một phần của ứng dụng khách và tôi không thể đăng nó. Không quá chắc chắn nó sẽ làm nên sự khác biệt anyway ...

+0

Cảm ơn Tieson, tôi đã mệt mỏi. Tuy nhiên, tôi vô tình giải quyết nó. Đọc bình luận của tôi bên dưới câu hỏi. Vẫn còn bối rối vấn đề là gì. – sprisoner

0

Chỉ trong trường hợp ai đó thả trong câu hỏi này, vì các quốc gia tài liệu, nó là cần thiết rằng lĩnh vực của bạn có một thuộc tính name:

uỷ thác: Thuộc tính 'tên' là bắt buộc đối với tất cả các yếu tố đầu vào cần xác thực và plugin sẽ không hoạt động nếu không có điều này. Thuộc tính 'name' cũng phải là duy nhất cho biểu mẫu, vì đây là cách plugin theo dõi tất cả các yếu tố đầu vào. Tuy nhiên, mỗi nhóm phần tử radio hoặc hộp kiểm sẽ chia sẻ cùng một 'tên' vì giá trị của nhóm này đại diện cho một phần dữ liệu biểu mẫu.

Source

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