2012-04-24 43 views
23

Bằng cách sử dụng Xác thực plugin jQuery, tôi đang cố gắng, cũng, xác thực biểu mẫu của tôi. Khi xác thực được chuyển, tôi muốn một javascript kích hoạt với các giá trị từ biểu mẫu và sau đó dừng lại. không gửi biểu mẫu thực tế nào khi duyệt đến một trang web mới/giống nhau.xác nhận jquery: ngăn chặn biểu mẫu gửi

điều này có thể thực hiện được với xác thực jquery không?

Trả lời

40

Bạn có thể thử này (Example):

$(function(){ 
    $("#myform").validate();  
    $("#myform").on('submit', function(e) { 
     var isvalid = $("#myform").valid(); 
     if (isvalid) { 
      e.preventDefault(); 
      alert(getvalues("myform")); 
     } 
    }); 
}); 

function getvalues(f) 
{ 
    var form=$("#"+f); 
    var str=''; 
    $("input:not('input:submit')", form).each(function(i){ 
     str+='\n'+$(this).prop('name')+': '+$(this).val(); 
    }); 
    return str; 
} 
+1

Đến trang có vấn đề tương tự. 'var isvalidate = $ (" # myform "). valid();' là chính xác những gì tôi đang tìm kiếm. Cảm ơn +1 –

+0

@Adam, Bạn được chào đón :-) –

+0

Thật lạ, trong trường hợp của tôi, 'valid()' trả về false nhưng tôi không thể ngừng gửi biểu mẫu với 'return false' hoặc' e.preventDefault() 'hoặc thậm chí cả hai! – JacobIRR

9

Có:

$("form").submit(function(event) { 
    if (somethingIsInvalid) { 
     event.preventDefault(); 
    } 
}); 
6

Có một phương pháp gọi là .valid() mà trở thành sự thật trong trường hợp không có sai sót trong bạn hình thành, vì vậy bạn có thể xác nhận đầu tiên với điều này và sau đó gửi mẫu ở đây là tài liệu hướng dẫn

http://docs.jquery.com/Plugins/Validation/valid

+4

Vì một lý do nào đó, điều này dường như luôn trả về 'đúng' đối với tôi. – tirdadc

0
$("#form").validate({ 
    rules: {...}, 
    submitHandler: function(form, event) { 
    event.preventDefault(); 
    alert("Do some stuff..."); 
    //submit via ajax 
    } 
}); 
Các vấn đề liên quan