$("#form").submit(function () { //Change
var th = $(this);
$.ajax({
type: "POST",
url: "mail.php", //Change
data: th.serialize()
}).done(function () {
$.fancybox.open({
src : '#thx',
type : 'inline'
});
setTimeout(function () {
th.trigger("reset");
$.fancybox.close();
}, 7000);
});
return false;
});
пробовал поставить через класс но что то я делаю не так или это вообще не возможно
$("#form").submit(...)
. Если у вас на странице все формы именно те, что вам нужно обрабатывать указанным скриптом, то вам достаточно написать вот так: $("form").submit(...)
. Если же у вас есть еще какие-то формы, которые нужно обрабатывать иным способом, то вам следует придумать некий класс для обсуждаемых форм, и делать по ним выборку таким образом: $("form.some-class").submit(...)
. $(function () {
$('[data-toggle="ajax"]').on('submit', function (e) {
e.preventDefault();
let $form = $(this);
let $formLoading = $('.ajax-form__loading', $form);
let $button = $('[type="submit"]', $form);
let data = $form.serialize();
let action = $form.data('action') || $form.attr('action');
let method = $form.attr('method');
let response = $form.data('response') || 'html';
console.log('Response type: ', response);
$button.attr('disabled', true);
$formLoading.addClass('show');
$form.trigger('beforeSend');
$.ajax({
url : action,
type : method,
data : data,
dataType: response
}).then(function (data) {
console.log('success', arguments);
$formLoading.removeClass('show');
$button.attr('disabled', false);
$form.trigger('success', [data]);
}).fail(function () {
console.log('error', arguments);
$formLoading.removeClass('show');
$button.attr('disabled', false);
$form.trigger('error');
});
});
});
$.fn.serializeObject = function ()
{
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
function sendForm(form, data) {
return new Promise((fulfill, reject) => {
if (!data)
data = $(form).serializeObject();
// console.log(`${form.method} ${form.action}`);
var ajaxSettings = {
method: form.method,
url: form.action,
data: JSON.stringify(data),
// dataType: form.method === 'get' ? 'jsonp' : 'json',
dataType: 'json',
contentType: 'application/json',
processData: false,
xhrFields: {
withCredentials: true
}
};
var ajaxRequest = $.ajax(ajaxSettings);
ajaxRequest.done((data, textStatus) => {
console.log(textStatus);
console.log(JSON.stringify(data, null, 2));
fulfill(data);
});
ajaxRequest.fail((response, textStatus, errorThrown) => {
console.log(textStatus);
console.log(errorThrown);
if (response.status === 401) {
screenLogin();
} else if (response.responseText) {
var data = JSON.parse(response.responseText);
console.log(JSON.stringify(data, null, 2));
} else {
console.log(errorThrown);
}
reject(data);
});
});
}
$('#formLogin').on('submit', (event) => {
sendForm(event.target)
.then(data => {
////
}).catch(error => {
/////
});
return false;
});
sendForm({method: "POST", action: '/templates/'}, {id: form.filter_id}).then(data => {
/////// обработка
});