@ikfah012
Не самый умный парень в этом чате

Как объединить два скрипта?

Добрый день.
Есть два скрипта, которые по-отдельности работают, но мне нужно объединить их так, чтобы сначала проводилась валидация данных в форме этим скриптом:
$("ordz").submit(function(e) {
    var ref = $(this).find("[required]");
    $(ref).each(function(){
        if ( $(this).val() == '' )
        {
            $(this).focus();
            e.preventDefault();
            return false;
        }
    });  return true;
});

А затем, если валидация прошла успешно, выполнялся бы следующий код:
$('button[id="btn_snd"]').on('click', function() {
    let $row = $(this).closest('form');
    let data = $row.find('input, textarea').serialize();
    $.ajax({
            type: "POST",
            url: "bt.php",
            data: data
        }).done(function() {
            alert("Done!");
            $('#ordz')[0].reset();
        });
        return false;
    });

Помогите, пожалуйста, разобраться.
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 3
@xenonhammer
Чтобы работали условия, то нужно использовать условные конструкции
Ответ написан
Комментировать
@aldexnotproger
Как вариант, можно добавить флаг isValidate, который содержит результат валидации, а потом уже производить отправку формы.
Ну а если скрипты находятся в разных файлах, то нужно использовать ES6 модули, правда вам все равно придётся использовать флаг. Только подключайте jQuery до того, как будете его использовать.
Ответ написан
Комментировать
@ikfah012 Автор вопроса
Не самый умный парень в этом чате
Кривенько получилось, но работает, моей задаче подходит.
function validateName(){
    	var x=document.forms["order_form"]["name"].value;
    	if (x.length < 2) {
    		document.getElementById('au').innerHTML = '(мин. 2 символа)';
    		return false;
    	} else {
    		document.getElementById('au').innerHTML = '';
    		return true;
    	}
    }

    function validatePhone(){
    	var x=document.forms["order_form"]["phone"].value;
    	if (x.length < 10) {
    		document.getElementById('eu').innerHTML = '(мин. 10 символов)';
    		return false;
    	} else {
    		document.getElementById('eu').innerHTML = '';
    		return true;
    	}
    }

    function checkall(){
	if(validatePhone() && validateName()) return true;
	else return false;
}

    $('button[id="btn_snd"]').on('click', function() {
        let $row = $(this).closest('form');
        let data = $row.find('input, textarea').serialize();
        if (checkall() == true) {
          $.ajax({
                  type: "POST",
                  url: "bt.php",
                  data: data
              }).done(function() {
                  alert("Done!");
                  $('#ordz')[0].reset();
              });
        }
        else {
          alert("Данные указаны некорректно!");
        }
            return false;
        });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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