2012-01-06 23 views
6

Tôi đang sử dụng thẻ biểu mẫu HTML5 cho trình xác thực phía máy khách được tích hợp vào nó, nhưng tôi không muốn nó gửi một thứ như tôi vừa có một hàm Javascript để chạy thay thế.Dừng gửi biểu mẫu HTML5, làm mới hoặc mở cửa sổ mới trênSubmit

Làm cách nào tôi có thể dừng phương thức Đăng của biểu mẫu.

Cheers - Caius

+0

Có phải jquery là một tùy chọn không? hoặc js thô? – Dunhamzzz

Trả lời

5

thêm một trở lại sai sau khi cuộc gọi chức năng, như vậy:

<input .... onclick="function();return false;" /> 

hoặc bạn chỉ có thể trở lại đúng/sai từ các chức năng như vậy:

<input .... onclick="return function()" /> 
+0

Cảm ơn bạn đã trả lời. Được rồi, dừng quá trình gửi, nhưng bây giờ việc xác thực dường như không hoạt động. bất kỳ ý tưởng? –

+0

Không chắc chắn, việc thêm mã không nên dừng chức năng của bạn. Kiểm tra xem hàm đang chạy (có thể thêm một số mã gỡ lỗi) và đảm bảo hàm trả về true/false nếu bạn đang sử dụng ví dụ dưới cùng. – Tom

1

Nếu bạn sử dụng jQuery, bạn có thể làm:

$('#your_form_id').submit(function(e){ 
    e.preventDefault(); 
    // do your staff 
}); 

Bạn cũng có thể làm điều đó mà không có một khuôn khổ:

document.getElementById('your_form_id').addEventListener('submit' function() { 
    // do your staff 
    return false; 
}); 

Trong "// làm nhân viên của bạn" bạn có thể viết mã ajax của bạn.

0

Thêm thuộc tính onsubmit vào thẻ hình của bạn:

<form onsubmit="return myfunction()"> 

đảm bảo bạn quay lại một bool cho chức năng của bạn

function myfunction() { 
    // do your validation 
    if (validation.passes) { // you will need to change this line !!! 
    return true; // to submit 
    } else { 
    return false; // to prevent submit 
    } 
} 
0

Thêm một handler onsubmit mẫu của bạn, ví dụ

<form method="POST" onsubmit="return sendForm();"> 

Sau đó, xác định chức năng và thêm sai như giá trị trả về:

function sendForm() { 
    //do your ajax request... 
    return false; 
} 
1

Tôi có xu hướng thích rời khỏi chức năng của tôi như là họ đang có và thêm một trở lại sai để xử lý onsubmit, ví dụ:

<form onsubmit="aFunction(); return false;"> 
0

Tôi đã thử tất cả giải pháp của bạn nhưng vẫn tải lại trang sau quy trình ajax:

<form id="form2" method="POST" onsubmit='sent(); return false;' > 

function sent(){ 
    $.ajax({ 
     ... 
    }); 
} 
Các vấn đề liên quan