Привет, Тостер!
При сабмите формы нужно провести проверку значения инпута.
Результат этой проверки получая с сервера аяксом.
Если проверка не пройдена - показываем ошибку и форму не отправляем.
Когда юзер исправляет ошибку и повторно сабмитит форму - если проверка пройдена - форма сабмитится.
Вот такой код у меня получился:
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 теперь не приходит кнопка сабмита формы.