Остановить функию из подфункции.
Итак, есть форма.
По 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-отправка */ } } Вот суть: можно-ли остановить выполнение функции из другой функции? |
По submit форма проходит валидацию на стороне клиента, чтобы отправиться с помощью AJAX на сервер уже валидной.
Никогда данные пришедшие извне без проверки сервером не должны считаться валидными! |
laimas,
Я и не говорю, что на сервере данные не проверяются. Просто менее затратно, да и намного быстрее, проверять всякую мелочь (вроде заполнения текстового поля или наличие файла с разрешённым форматом/размером) на стороне клиента, до отправки. |
>Просто менее затратно проверять на стороне клиента, до отправки.
Это "искажение реалий" называется - если севере обязан проверять, то проверка на клиенте, это как раз лишние затраты. Такая проверка, это сервис для клиента и он оправдан в том случае, если не используется асинхронный диалог клиент-сервер. А у вас асинхронный, и в чем выгода тогда? А вообще проверять формы таким образом как вы пишете, это не только затраты, но и излишество. Вот тут подобное обсуждалось, и это мое мнение, вы можете следовать своему, но только не говорите менее затратно проверять на стороне клиента, так как в контексте ваших действий это далеко от истины. |
Часовой пояс GMT +3, время: 04:36. |