Показать сообщение отдельно
  #1 (permalink)  
Старый 09.03.2015, 14:17
Аспирант
Отправить личное сообщение для 2chan Посмотреть профиль Найти все сообщения от 2chan
 
Регистрация: 11.07.2014
Сообщений: 69

Остановить функию из подфункции.
Итак, есть форма.
По submit форма проходит валидацию на стороне клиента, чтобы отправиться с помощью AJAX на сервер уже валидной.
Объект для работы с формой ниже. В нём метод отправки, "post":
var FuckingForm = {
	post: function() {
		if(!FuckingForm.file.files[0] && FuckingForm.textArea.value.replace('\n', '') == '') {
			FuckingForm.alert.className = "error";
			FuckingForm.alert.textContent = 'Please enter a message and/or upload an image to make a reply';
			return;
		}
		if(FuckingForm.textArea.value.length > $maxMessageLength) {
			FuckingForm.alert.className = "error";
			FuckingForm.alert.textContent = "Please shorten your message, or post it in multiple parts.";
			return;
		}
		if(FuckingForm.file.files[0] && FuckingForm.file.files[0].size > $maxFileSize) {
			FuckingForm.alert.className = "error";
			FuckingForm.alert.textContent = 'That file is larger than '+ Math.floor($maxFileSize/1024/1024) +'MB';
			return;
		}

		/* Далее AJAX-отправка */
	}
}

Так вот, захотелось перенести валидацию в отдельную функцию. Т.е. так:
var FuckingForm = {
	post: function() {
		FuckingForm.validate();

		/* Далее AJAX-отправка */
	}
}

Можно-ли остановить функцию post из функции validate? Т.е. в validate, если что-то не так, будет останавливать функцию post. Пока-что единственное что пришло в голову - проверять возвращаемое значение validate.
var FuckingForm = {
	post: function() {
		if(!FuckingForm.validate()) {
			return;
		}

		/* Далее AJAX-отправка */
	}
}

Вот суть: можно-ли остановить выполнение функции из другой функции?
Ответить с цитированием