2012-03-09 33 views
11

Tôi đang sử dụng jQuery Validator. Và tôi đang cố gắng tìm ra: Làm cách nào để bỏ gắn trình xác nhận hợp lệ khỏi biểu mẫu của tôi sau khi được gửi?Trình xác thực jQuery Bỏ gắn kết

$(function() { 
    // Just the rules, etc... 
    validator = $("#sweepstakesForm").validate({rules: {fname: {required: true,minlength: 2,maxlength: 50},lname: {required: true,minlength: 2,maxlength: 50},email: {email: true,remote: "?c=home&m=jsHook&param=email&nojson=1",required: true,minlength: 6,maxlength: 120},address: {required: true,minlength: 5,maxlength: 100},state_0: {required: true},state: ); // etc ... 

    $('#sweepstakesForm').submit() { 

    } 
}); 

Tôi đã thử những vô ích:

validator = null; 
$("#sweepstakesForm").unbind('validate'); 
delete validator; 
+0

Xem nhanh [nguồn] (http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery. validate.js) và từ những gì tôi có thể thấy, không có phương thức để bỏ đính kèm/hủy bỏ trình xác nhận hợp lệ. –

+0

Tại sao _exactly_ bạn đang cố gắng giết người xác thực? Khi một biểu mẫu được xác nhận và gửi đi, bạn đang ở trên một trang mới, nút gửi bị vô hiệu hóa, hoặc biểu mẫu bị vô hiệu hóa/ẩn ... việc hủy bỏ trình duyệt tính hợp lệ là một điểm tranh luận. Có lẽ nếu chúng tôi biết nhiều hơn, chúng tôi có thể đề xuất một giải pháp thay thế. – Sparky

+0

một cách chắc chắn sẽ tải lại toàn bộ biểu mẫu dưới dạng html mới – charlietfl

Trả lời

15

Hãy thử

$('#sweepstakesForm').data('validator', null); 
$("#sweepstakesForm").unbind('validate'); 
+3

Là người đầu tiên, cảm ơn bạn! – JREAM

+0

Cái đầu tiên "hoạt động" đối với tôi nữa, nhưng có lẽ chỉ vì nó đưa ra một lỗi, 'Loại lỗi không xác định: Không thể đọc cài đặt thuộc tính 'của null' [dòng 332 của jquery.validate.1.11.1.js] (https: //gist.github.com/tim-peterson/6249726), nếu bạn nhập lại dữ liệu không hợp lệ sau khi đặt lại biểu mẫu. –

+1

Cảm ơn, điều này đã làm việc cho tôi. Ngoài ra, xem xét đây là một câu trả lời hai tuổi nó có giá trị chỉ ra rằng tôi đã thử nghiệm này và có thể xác nhận nó hoạt động trên 'jQuery 1.7.2'. – crmpicco

2

Hãy thử thêm một .unbind('submit')

$('#sweepstakesForm').submit(function() { 
    $(this).unbind('submit'); 
}); 
+0

Đó không phải là những gì anh ta hỏi. Anh ta muốn giết người xác nhận. – Sparky

+0

@ Sparky672, đó là một câu trả lời thú vị. Có lẽ trình duyệt tính hợp lệ đã ràng buộc gửi các sự kiện và hủy liên kết tất cả các trình xử lý gửi có hiệu quả sẽ ngừng xác thực thêm. Nhưng tôi đoán đó là một bãi mìn của các tác dụng phụ. – eyelidlessness

+0

Cảm ơn bạn đã đăng bình luận, unbind không chính xác là tôi đang tìm kiếm, nhưng tôi đánh giá cao nhận xét! – JREAM

1

Tôi không thực sự quen thuộc với điều này plugi n, nhưng từ tài liệu có vẻ như bạn muốn là:

$('#sweepstakesForm').rules('remove'); 
+0

Nó không phải những gì tôi đang tìm kiếm nhưng vẫn giữ điều này trên ổ ghi, cảm ơn bạn! – JREAM

+0

@JREAM, nó không ngăn chặn xác nhận thêm? Từ việc đọc các tài liệu của tôi, nó dường như làm những gì bạn đã yêu cầu, có lẽ bạn có thể giải thích sự khác biệt. – eyelidlessness

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