2013-06-01 29 views
5

Ok, do đó, việc ngăn chặnDefault trên nút gửi của tôi hoạt động để ngừng gửi biểu mẫu. Hậu quả của việc này là nó sẽ không nói cho người dùng về các trường bắt buộc và chỉ thực hiện sự kiện nhấn trên nút.Kết hợp jQuery preventDefault và các biểu mẫu yêu cầu đầu vào

Thêm ngăn chặnDefault cho trình xử lý gửi hiển thị cho người dùng các trường bắt buộc nhưng vẫn kích hoạt sự kiện nhấp được gắn với nút.

Tôi cần cả hai.

<form action="" method="post"> 
    <input type="text" class="class" id="id" name="name" required="required" /> 
</form> 

Bây giờ js:

$("button").click(function(event){ 
    event.preventDefault(); 
    //performs function 
}); 

này sẽ cháy sự kiện nhấp chuột, bất kể một hình thức đầu vào cần thiết.

$("form").submit(function(event){ 
    event.preventDefault(); 
}); 
$("button").click(function(){ 
    //performs function 
}); 

Điều này sẽ hiển thị thông báo bắt buộc cho người dùng nhưng vẫn thực hiện chức năng gửi nút. Làm thế nào để tôi làm cả hai? Tôi đã xem xét một số câu hỏi SO khác tôi có thể tìm thấy trên này, nhưng có vẻ như hầu hết có thể được trả lời bằng cách thêm preventDefault để form.submit.

+0

Hãy thử điều này '$ ("hình thức") nộp (function (event) { return false; });. ' –

Trả lời

4

Tôi đã thực sự cố gắng làm hai việc khi tôi chỉ cần làm một việc.

Tôi không cần chức năng button.click, vì theo mặc định, nó sẽ gửi biểu mẫu. Tôi chỉ cần đặt hàm button.click bên trong form.submit.

$("form").submit(function(event){ 
    //perform button function 
    return false; 
}); 
+0

có! điều này có vẻ hiển nhiên bây giờ, cảm ơn! :) – andrei

0

Tự kích hoạt sự kiện gửi.

$("button").click(function(event) { 
    event.preventDefault(); 

    $('form').submit(); 
});