@ichubinets

Как отправить форму через ajax?

Есть форма
<form data-action="/feedback/add">
  <div class="form-group">
    <label for="firstname">Имя</label>
    <input type="text" class="form-control" id="firstname" name="firstname" required="">
  </div>
  <div class="form-group">
    <label for="contact">Email или номер телефона</label>
    <input type="text" class="form-control" id="contact" name="contact" required="">
   </div>
  <div class="form-group">
    <label for="text">Сообщение</label>
    <textarea class="form-control" id="text" name="text" rows="5" required=""></textarea>
   </div>
   <div class="form-group">
     <button type="submit" name="submit" class="btn btn-info">Отправить</button>
   </div>
</form>


Хочу сделать чтобы js код при нажатии кнопки submit проверил есть ли в этой форме атрибут data-action если есть то это означает что форма должна отправиться через ajax по адресу указано в атрибуте

Пробовал таким способом но не определяет адрес :(

$(document).ready(function()
{
	$('form[data-action]').submit(function(e) 
	{
		var form = $(this)[0];
		
		e.preventDefault();
		
		$.ajax({
			url: $(this).attr('[data-action]'),
			type: 'post',
			data: new FormData(form),
			contentType: false,
			processData: false,
			success: function(result) 
			{
				console.log(result);
			}
		});
	});
});
  • Вопрос задан
  • 845 просмотров
Решения вопроса 1
@ichubinets Автор вопроса
Проблема решена. Помог атрибут data()
Ниже пример отправки:
$(document).ready(function()
{
	$('form[data-action]').submit(function(e) //ловим использование submit с атрибутом data-action у <form>
	{
		e.preventDefault(); // отмена действия браузера
		
		$.ajax({
			url: $(this).data('action'), //полученный url из атрибута data-action
			type: 'post',
			data: new FormData($(this)[0]), //получаем все поля формы
			contentType: false,
			processData: false,
			success: function(result) 
			{
				console.log(result); //результат
			}
		});
	});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы