jquery xác nhận cần nhấp vào gửi hai lần để gửi biểu mẫu
Tôi đã xem xét Stackoverflow và các câu trả lời được áp dụng cho vấn đề tôi đang gặp nhưng tôi vẫn không thể làm cho nó hoạt động. Tôi đã xóa event.preventDefault(); từ đó, cũng như $ ("# review-form") submit (function (event) {và form đệ trình như nó nên sau khi nhấp vào submit input một lần, nhưng nó không đăng lên cơ sở dữ liệu.
Dưới đây là jQuery cho # xét-form
$("#review-form").validate({
submitHandler: function() {
$("#review-form").submit(function (event) {
var rating = $(this).find('input[name=rating]');
// var rating = $(this).find('input[name=rating]').val();
var review = $(this).find('textarea[name=review]');
var form_settings = $(this).find('input[name=form_settings]');
var xid = $(this).find('input[name=XID]');
var entry_id = $(this).find('input[name=entry_id]');
var entry_type = $(this).find('input[name=entry_type]');
var site_id = $(this).find('input[name=site_id]');
var first_name = $(this).find('input[name=first_name]');
var middle_initial = $(this).find('input[name=middle_initial]');
$.ajax({
url: $("#review-form").attr("action"), //your server side script
data: $(this).serialize(),
type: 'POST',
success: function (data) {
//$('#response').append('<li>' + data + '</li>');
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
event.preventDefault();
});
}
});
UPDATE:. tôi gỡ bỏ $ ("# xét-form") nộp (function (event) {}); và tôi đã thay đổi $ (this) .find ... và truy xuất bằng cách chỉ định id của biểu mẫu # form-review, sau đó qua thông số dữ liệu.Tôi đã nhận xét tất cả các biến riêng lẻ và chỉ cần chuyển $ (this) .serialize() vào tham số dữ liệu và không hoạt động.
bên dưới mã số hoạt động trong chrome và firefox, nhưng trong firefox, nó đóng modal và chuyển hướng đến trang chủ của tên miền, nó sẽ giữ cho phương thức cởi mở với một lời cảm ơn msg, giống như trong chrome:
$("#review-form").validate({
submitHandler: function() {
$.ajax({
url: $("#review-form").attr("action"), //your server side script
data: $("#review-form").serialize(),
type: 'POST',
success: function (data) {
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
event.preventDefault();
}
});
cuối cùng làm việc sản phẩm:
$("#review-form").validate({
submitHandler: function() {
$.ajax({
url: $("#review-form").attr("action"),
data: $("#review-form").serialize(),
type: 'POST',
success: function (data) {
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
}
});
Bạn chắc chắn muốn loại bỏ các '$ ("# xét-form"). Submit' gọi như đó là ràng buộc nộp xử lý trên nhấp chuột đầu tiên, đó là lý do tại sao bạn đang nhận được nhấp chuột chết. Bạn có nhận được bất kỳ lỗi nào từ cuộc gọi '$ .ajax' của mình không? – Mathletics
@Mathletics cảm ơn, điều đó đã giúp ích. – Brad