![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Samvel2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 31.5.2010 Где: Москва-Ереван Репутация: нет Всего: нет |
Добрый день! у меня есть форма ..При отправке проверяется корректная залоненость ip и порта. потом аяксом в базе проверяется наличие ... если нету в бд то форме отпрявляю return:false; . Но при указании return:false; в $.post форма не останавливается.
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
? или вообще всегда возвращать return false, раз уж другого варианта не предусматривается. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Если это разовый случай на сайте, то можно немного похардкодить:
Если же хочется уникальности и независимости от ссылки на форму, то делать замыкание вокруг post и вызывать примерно так:
|
||||
|
|||||
Samvel2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 31.5.2010 Где: Москва-Ереван Репутация: нет Всего: нет |
||||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Вы в курсе КОГДА срабатывает return false в конце вызова функции и КОГДА срабатывает функция в post? Что срабатывает раньше и какой смысл возвращаемое значение имеет? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Arantir |
|
||||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Господи, что за мода на return false пошла? Откуда только люди берут это в голову...
Вот как события останавливают:
Добавлено через 3 минуты и 28 секунд
preventDefault работает стопроцентно. Если у вас не работает - значит вы достутили ошибку в коде. Это сообщение отредактировал(а) Arantir - 14.12.2012, 13:50 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
||||
|
|||||
Samvel2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 31.5.2010 Где: Москва-Ереван Репутация: нет Всего: нет |
Да я не предупредил - Что в JS я зелёный. Методом проб и ошибок понял =)
Не с потолка это точно =) С Учебников и учебных материалов. Проблему решил по-другому чуть поменял концепцию формы.И проверку вынес в отдельную кнопку . Всем спасибо ! |
|||
|
||||
Amphiluke |
|
||||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 17 Всего: 112 |
Это документированная фича jQuery.
Впрочем если нужно исключительно предотвратить действие по умолчанию, лучше, действительно, использовать один только .preventDefault(), без отмены всплытия. |
||||
|
|||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
А я и не говорил, что это не работает. Просто многие применяют это не совсем там где нужно, там где не нужно, там где не совсем нужно, или там где совсем не нужно =) Amphiluke, вот вы пишите, мол это документировано. Но $.post() - это не event handler, чтобы из него false возвращать. return сам по себе вверх по иерархии функций не двигается. Надо делать return той функции, которая что-то возвратила, чтобы "продвинуть" результат return'а выше. Но это не поможет, так как .post() возвращает не результат своего callback'а. И вообще все это не важно, так как запрос асинхронный и callback выполнится вообще после того, как весь остальной код из .submit(). Ну ладно, последние два пункта return false напрямую не касаются, но просто хотел намекнуть, что когда делаешь return false, то надо понимать, что именно он в итоге сделает. P.S.: Вот Aliance, привел чудесный пример правильного решения поставленной задачи (хотя и слегка много вложенности if-ов вышло, но это косметическое). -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 17 Всего: 112 |
Я увидел return false в обработчике события submit
![]() P.S. .preventDefault() тоже никак не вяжется с $.post(), если что Это сообщение отредактировал(а) Amphiluke - 15.12.2012, 15:46 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |