Блог

Отменить отправку формы по enter. Отправление Ajax запроса

Иногда нужно переделать стандартное поведение элементов HTML документа. Ну и так уже сложилось что заказчик хочет чтоб страница не перегружалась. Стандартно валидация введеных даных проводится методами JavaScript, Jquery и т.д. тоесть на стороне клиента. Но что нужно делать когда нужно провести сложную валидацию с обращением в БД? В помощь разработчику приходит Ajax запрос. Что делаем: 1) проверяем нажат ли в форме enter 2) отправляем запрос 3) принимаем и разбираем ответ 4) запрещаем выполнение стандартного поведения.
$(document).ready(function(){//когда документ подгружен
	$('#form_id').keydown(function(event){ // при нажатии в форме с id="form_id" клавиши enter
	if(event.keyCode==13){//код enter
	//если нужно отправить  Ajax запрос
		var OurUrl='/testfolder/test_file.php';//путь к файлу в котором будут производится проверки
		var options=[];//обьявим масив
		$.each($("input[type=checkbox]:checked"),function(){
		    options.push($(this).attr('name'));//наполняем масив полями "name" отмеченых checkbox(например)
		});
		$.ajax({
			type: 'POST',//определяем метод запроса
			data:{data : options},//данные для передачи
			url: OurUrl,
			success: function (data) {//при успешном выполнении
					$('#response_container').html(data);//записать ответ в элемент с id="response_container"
					//или когда пришла не распарсеная строка
					var obj = JSON.parse(data);//распарсим
					if (obj.STATUS=='OK'){//проверка
							$('.adm-info-message-green').show();//какие-то действия
					}else{
							$('.adm-info-message-red').show();//какие-то действия
					}
			}
		});
		//конец вызова
	 event.preventDefault();//отменить стандартные действия
	 return false;
	}
 });
});

Оставить комментарий



Вам нужен сайт? С чего начать?

Проконсультируем, найдем оптимальное решение, подготовим индивидуальное предложение.