2011-06-27 22 views
14

Tìm cách để móc vào điều kiện lỗi phía máy khách cho biểu mẫu.Làm thế nào để móc vào lỗi của jQuery xác nhận không phô trương trong MVC 3?

Tôi cần phải bật lại nút gửi nếu xác thực không thành công để họ có thể thử lại.

Tôi tìm thấy những điều sau đây: Using unobtrusive validation in ASP.NET MVC 3, how can I take action when a form is invalid? có thể hoạt động nhưng tôi đã hy vọng làm điều này từ vị trí trung tâm vì biểu mẫu có thể được gửi từ nhiều nơi.

Cập nhật:

Chức năng này dường như hoạt động tốt với giả sử bạn có thẻ đầu vào với lớp ".goButton".

<script language="javascript" type="text/javascript"> 
    $(".goButton").click(function() { 
     if (!$(this).closest("form").valid()) { 
      return false; 
     } 
     $(".goButton").after("Please wait..."); 
     $(".goButton").hide(); 
    }); 
</script> 

Trả lời

24

Sau đó, bạn có thể móc TẤT CẢ các biểu mẫu từ vị trí trung tâm - chỉ cần lưu ý rằng tất cả biểu mẫu sẽ được nối. Thay vì sử dụng $("#formId") trong mẫu, chỉ cần sử dụng $("form").submit() và đại biểu đó sẽ được gọi để gửi bất kỳ biểu mẫu nào và trong phương thức đó, bạn có thể gọi séc hợp lệ và trả lại đúng (để gửi biểu mẫu) hoặc giả mạo để ngăn chặn.

Something như thế này ra khỏi đỉnh đầu của tôi

$("form").submit(function() { 
    if (!$(this).valid()) { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
}); 
+0

Cảm ơn bạn, tôi tin rằng đó là những gì tôi đang tìm kiếm. –

+1

Gọi $ (this) .valid() ở đây thực sự chạy logic xác nhận chính xác những gì tôi đang tìm kiếm. Tôi gặp sự cố khi nhận được một số phần tử .form-validation-error trong một sự kiện $ (form) .submit() cho đến khi gọi $ (this) .valid(). Thx nhiều! –

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