librown
@librown
На-все-руки-мастер и немного кодер

Как отправить форму после того как у нее установлен submit-обработчик: return false?

Привет, Тостер!

При сабмите формы нужно провести проверку значения инпута.
Результат этой проверки получая с сервера аяксом.
Если проверка не пройдена - показываем ошибку и форму не отправляем.
Когда юзер исправляет ошибку и повторно сабмитит форму - если проверка пройдена - форма сабмитится.

Вот такой код у меня получился:

function get_price_val(){	
		$.ajax({
			url: '/ajax.php',
			success: function(price){
				check_valid_sum(price);
			}
		});
}


function check_valid_sum(price){

	if(sum < price){

     // показываем сообщение об ошибке

	}else{

		$('#form').off('submit');	// удаляем ранее установленный обработчик		
		$('#form').submit();   // сабмитим форму

	}
}


$(function() {
	
   $('#form').submit(function() {
	   get_price_val();
	   return false;
   });

});


Подскажите, правильный ли подход я выбрал?

И второй вопрос: при получении данных формы на бекэнде, у меня был такой код:

if( isset($_POST['submit_button']) ){
   // обрабатываем данные формы
}


Так вот, после того, как на фронтэнде начал удалять обработчик ($('#form').off('submit');) - бекэнд перестал работать. В массиве POST теперь не приходит кнопка сабмита формы.
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 1
werty1001
@werty1001
undefined
Не очень понятно зачем несколько отправок? Отправляете данные через форму, проверяете их на сервере, возвращаете ошибку/успех, при ошибке юзер исправит и отправит снова.
Ответ написан
Ваш ответ на вопрос

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

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