VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Пробую дописать яваскриптовую проверку при создании новой темы. При проверке в простом html - все работает без проблем, а вот при вставке в форум появляется одна БОЛЬШАЯ проблема - после выскакивания окна с сообщением о ошибке - загрузка продолжается. return false Не помогает
sanika добавил 09.01.2013 в 00:46
например в шаблоне newthread на кнопку "Новая тема" ставлю
onClick"img()"
ну и функция
function img()
{
alert('test');
return false;
}
Алерт выскакивает а загрузка продолжается. Как ее остановить?
Что-то мне подсказывает что все дело в обработчике формы
onsubmit="return vB_Editor['$editorid'].prepare_submit(this.subject.value, $vboptions[postminchars])", может кто-то знает как с этим бороться?
Last edited by sanika : 01-09-2013 at 02:53 AM.
Reason: Добавлено сообщение
<script type="text/javascript">
function img()
{
alert('обрабатываю картинку');
return false;
}
function img2()
{
alert('продолжается основная загрузка');
return true;
}
</script><form onsubmit="return img2()"><button type="submit" onclick="return img()">send</button></form>
Все работает так как надо обрабатывается первая функция и не пускает во вторую. Но когда цепляю требуемую обработку (проверяю ширину загружаемой картинки которая потом используется как превью для темы) onsubmit срабатывает быстрее чем onclick. Как тут бороться?
да собсно не так сложно =)
к ответу в теме прикручено доп. поле для картинки, когда узер создает тему, это поле должно быть обязательно заполнено и там должна быть картинка определенных размеров
размеры проверяются в скрипте, как и заполненность поля
так вот нужно повесить обработчик, что бы не давал создать тему если поле не заполнено и/или картинка не соответствет условиям
на сколько я понял, не получается остановить выполнение скрипта (отправку формы), если форма отправлена с неверными или пустыми данными
==
можно (и даже нужно) повесить проверку не только в яваскрипте, но и в пхп, т.к. узер может просто отключить яваскрипт в браузере
@sanika
Продвинутый
Join Date: Mar 2011
Posts: 309
Версия vB: 3.8.6
Reputation:
Опытный 96
Репутация в разделе: 96
0
Керк, полностью описал задачу. до PHP пока очередь не дошла но там, вроде, проще - getimagesize() работает. а вот с javascript не могу разобраться
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
0
Quote:
Originally Posted by sanika
но там, вроде, проще - getimagesize() работает
так отправляй запрос аяксом в пхп, проверяй картинку и в ответе сервера уже можешь пихнуть что угодно, а не только алерт
@sanika
Продвинутый
Join Date: Mar 2011
Posts: 309
Версия vB: 3.8.6
Reputation:
Опытный 96
Репутация в разделе: 96
0
та не - задача проверитьпри нажатии на кнопку, а для этого все равно надо яваскриптом передать данные в пхп, получить ответ и лишь тогда продолжить или остановть работу. ИМХО это уже перебор. Пробую с яваскриптом разобратся, но пока никак. Сложность в том что пока грузится картинка img.onload успевает запустится onsubmit формы и уже плевать на результат проверки - процесс пошел дальше.
Т.е. поставленная задача - пока не выдастся результат с шириной картинки - загрузку не продолжать.
И все это только для работы в ХРОМЕ - во всех остальных браузерах параметр ширины ловится на лету, не дожидаясь кеширования картинки
OldEr
Специалист
Join Date: Jun 2007
Награды в конкурсах:
Posts: 4,731
Версия vB: 3.8.x
Пол:
Reputation:
Мастер 4229
Репутация в разделе: 2623
1
Quote:
Originally Posted by kerk
да собсно не так сложно =)
Да я ж не спорю, приблизительно так и представлял, но лучше лишний раз уточнить. = )
Я бы представил себе это так. Первым делом деактировать кнопку отправки сообщения, пока не было проверено поле с картинкой, вне зависимости заполнено или нет. Если проверка пройдена успешно, то запретить редактировать поле для картинки и активировать кнопку отправки сообщения. Ну и разумеется проверка на стороне сервера (PHP) нужна в любом случае, так как все то что на JS это скорее для удобства юзера, а все проверки бесполезны. Ну и само собой, желательно проверять не отключен ли JS в браузере, или деактировать кнопку отправки непосредственно на JS.
@sanika
Продвинутый
Join Date: Mar 2011
Posts: 309
Версия vB: 3.8.6
Reputation:
Опытный 96
Репутация в разделе: 96
1
т.е. проверять сразу после того как внесен урл картинки? не дожидаясь нажатия кнопки?
sanika добавил 11.01.2013 в 00:39
Спасибо за совет так и сделал.
Last edited by sanika : 01-11-2013 at 02:39 AM.
Reason: Добавлено сообщение