2013-09-04 43 views
12

Tôi đang cố gắng để gọi hàm jQuery xác nhận showErrors từ bên trong submitHandler chức năng mà không cần phải tiết kiệm đối tượng validator như vậy:Nhận jQuery đối tượng validator từ bên trong hàm submitHandler

var validator = $("#myshowErrors").validate(); 
validator.showErrors({ 
    "firstname": "I know that your firstname is Pete, Pete!" 
}); 

Có cách nào để có được các đối tượng được xác nhận từ bên trong phương pháp submitHandler hơi như thế này:

$("#myshowErrors").validate({ 
    submitHandler : function(form) { 

    $(form).ajaxSubmit({ 
     success : function(result) { 

     var validator = // Get validator here somehow? 
     validator.showErrors(result.fieldErrors); 

     } 
    }); 

    } 
}); 

Bằng cách làm nó theo cách này, hy vọng của tôi là tôi có thể sử dụng cùng một phương pháp submitHandler trong multipl e địa điểm trong suốt dự án của tôi.

+0

Có rất nhiều phương pháp có sẵn để tùy chỉnh cách sử dụng plugin này. Nhưng bạn không thể sử dụng 'submitHandler' ở bất cứ đâu ngoài' .validate() '. Và tại sao bạn cần đặt 'showErrors' vào bên trong hàm gọi lại' submitHandler'? – Sparky

+0

Hãy đưa ra một ví dụ cụ thể về những gì bạn đang cố gắng đạt được để nó có thể được đặt vào [jsFiddle] (http://jsfiddle.net/Y95gk/). Sau đó, tôi sẽ có thể cho bạn biết nếu nó có thể được thực hiện tốt hơn bằng cách sử dụng các tùy chọn tiêu chuẩn và chức năng gọi lại. – Sparky

+1

Về OP đã chỉnh sửa: Điều này vẫn không có ý nghĩa gì. [Theo định nghĩa] (http://jqueryvalidation.org/validate), hàm gọi lại 'submitHandler' chỉ kích hoạt khi biểu mẫu là" hợp lệ "... những gì sử dụng là' showErrors' tại thời điểm này khi một biểu mẫu hợp lệ sẽ không có lỗi? – Sparky

Trả lời

19

Validator đối tượng được lưu trữ trong dữ liệu yếu tố hình thức:

var validator = $.data(form, "validator"); 

Edit:

Trong thực tế validator cũng nên được lưu trữ trong this:

$("#myshowErrors").validate({ 
    submitHandler : function(form) { 
    var validator = this; 

    $(form).ajaxSubmit({ 
     success : function(result) { 
     validator.showErrors(result.fieldErrors); 
     } 
    }); 

    } 
}); 
+1

Cảm ơn bạn! Điều này thật đúng với gì mà tôi đã tìm kiếm! –

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