Суть вопроса: есть несколько форм, которые открываются последовательно при успешном заполнении предыдущей (отправка полей осуществляется AJAX).
Раньше как-то не задавался таким вопросом, но сейчас подумал, а как избежать пропуска одной или нескольких форм?
Все формы лежат в одном html документе и у всех кроме первой стоит display:none. Соответственно при успешном заполнении формы и нажатии кнопки, текущая форма скрывается и показывается следующая. Как избежать случая, когда user сам поменяет display на block?
Я понимаю, что можно посредством append() добавлять содержимое формы при заполнении предыдущей, но если user совсем умный(или чересчур любопытный), он ведь может залезть в sourses, и банальным копирование перенести мой template в html и заполнить его, благополучно пропустив n-ое количество форм, которые по идее должны быть им заполнены.
Можно конечно объявить глобальный объект и добавить в него поле, например:
var Sitename = {}
Sitename.countForm = 0;
И при условии заполнения формы просто после успешной отправки формы делать инкрементацию этого поля:
$.ajax({
.... ,
success: function() {
Sitename.countForm++;
}
});
а перед отправкой следующей проверять, чему равно это поле. И если условие не проходит, то делать просто
document.write(' Теперь придется пере загрузиться ');
Мне кажется этот способ более гуманный, так как если например придется править форму, а она в виде строки лежит в переменной, то мало приятного в ней копаться, да и более менее опытный пользователь интернета сможет обойти эту меру.
Способ же с переменной как минимум заставит пользователя покопаться в коде. И возможно отказаться от идеи обойти систему какими-либо средствами.
Я только начинаю серьезно вникать в front-end, поэтому стараюсь решать поставленные задачи по возможности качественно. Вот потихоньку добрался и до вопроса безопасности.
Если есть какие-либо наработки у кого-нибудь по этому поводу, буду очень признателен за ваше словесное описание решения проблемы. Спасибо за внимание)
пс. Не исключено, что проблемы то никакой и нет, а просто я недальновидный и мало знаю, поэтому не пинайте сильно если эта проблема кажется вам изначально следствием моей неопытности и возможно криворукости =))