chút JavaScript:jQuery Form Validation trước Ajax nộp
$(document).ready(function()
{
$('#form').submit(function(e)
{
e.preventDefault();
var $form = $(this);
// check if the input is valid
if(! $form.valid()) return false;
$.ajax(
{
type:'POST',
url:'add.php',
data:$('#form').serialize(),
success:function(response)
{
$("#answers").html(response);
}
});
})
});
HTML bit:
<input type="text" name="answer[1]" class="required" />
<input type="text" name="answer[2]" class="required" />
Vì vậy, đây là mã Tôi cố gắng để sử dụng. Ý tưởng là để có được tất cả các đầu vào của tôi xác nhận trước khi tôi gửi biểu mẫu của tôi với Ajax. Tôi đã thử nhiều phiên bản của điều này ngay bây giờ nhưng mỗi lần tôi kết thúc bằng việc gửi ngay cả khi biểu mẫu không được điền đầy đủ. Tất cả các yếu tố đầu vào của tôi là của lớp "bắt buộc". Ai có thể nhìn thấy những gì tôi đang làm sai?
Ngoài ra, tôi phụ thuộc vào các yêu cầu dựa trên lớp vì tên đầu vào của tôi được tạo bằng php nên tôi không bao giờ có thể chắc chắn tên [id] hoặc kiểu nhập nào tôi nhận được.
Tôi hiển thị/ẩn các câu hỏi khi tôi xem xét nó trong "trang".
<input type="button" id="next" onClick="toggleVisibility('form3')" class="next-btn"/>
JS:
function toggleVisibility(newSection)
{
$(".section").not("#" + newSection).hide();
$("#" + newSection).show();
}
gì xảy ra khi bạn gửi? –
Tại thời điểm này tôi chỉ cần lặp lại tất cả các cặp $ key => $ value và chúng tiếp tục xuất hiện trên màn hình của tôi ngay cả khi tôi chỉ điền vào 1/4 câu hỏi. – Tom
Tôi không thể tìm thấy 'beforeSubmit' như một tùy chọn hợp lệ cho $ .ajax trong phiên bản mới nhất của jquery (v1.7.2). Bạn có thể muốn sử dụng phiên bản mới nhất của jquery. Điều đó nói rằng, câu trả lời của Darin là làm thế nào nó nên được thực hiện. Điều đó nói rằng, nếu bạn chỉ không thể làm những gì ông đang đề xuất, sau đó thay thế dòng cuối cùng của beforeSubmit của bạn với mã Fliespl đã đưa lên. Bạn cần kiểm tra giá trị trả về của '.validate()' và theo đó, hãy tiến hành hoặc hủy bỏ yêu cầu ajax. –