|
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
|
|||||||||||
Почему не срабатывает условие if else?03.07.2019, 18:04. Показов 7429. Ответов 9
Метки нет (Все метки)
Всем привет.
есть код:
Добавлено через 1 час 11 минут Как понимаю когда срабатывает length > 0 получается true в условиях и на этом дальнейшие else не срабатывают. Надо как понимаю false вернуть из этого условия если под условие не сработало..только не знаю как это сделать Добавлено через 20 минут Или в случае else подусловия написать - return false ?
0
|
|||||||||||
| 03.07.2019, 18:04 | |
|
Ответы с готовыми решениями:
9
Почему срабатывает условие? |
|
54 / 11 / 0
Регистрация: 28.11.2017
Сообщений: 50
|
|
| 03.07.2019, 18:06 | |
|
Логика if-else-if аналогична switch, то есть должно сработать только какое-то одно условие, которое исключает все остальные. Такая схема не годится когда нужно проверить разные не связанные условия. В этом случае блоки if должны быть отдельными, а условие зависящее от другого условия должно быть вставлено внутрь этого условия без всякого else, как кстати, правильно и сделано в первом варианте: если имейл не пустой проверяем как он написан, только там дальше неправильно стоит else if, который непонятно зачем нужен и к какому if относится (вообще-то к ближайшему). Конструкция if-else-if вас просто запутывает. А всё же просто как валенок: если такое-то условие, то ... , если такое, то... Без всяких else. Всё усложняет привязка разных условий к одной переменной. А вдруг случится что и волки сыты и овцы целы, то надо и тех и других в одну строку конкатенировать.
0
|
|
|
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
|
|
| 03.07.2019, 22:29 [ТС] | |
|
А как сделать что бы остальные условия тогда не проверялись? Мне то надо что бы по очереди потерялись сверху вниз условия и первое же несоответствие давало некий результат. Все бы ничего да только одно из условий имеет подусловие..так то все как раз устраивало.. что то вроде goto есть? Или другой вариант..
0
|
|
|
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
|
|||||||||||
| 03.07.2019, 23:52 | |||||||||||
|
shivara52,
https://codepen.io/Mr_Sergo/pen/gNKKZN
Добавлено через 3 минуты В случае совпадения какого-то условия в fail добавляем ту или иную ошибку совмещенным оператором += \n добавляет в строку знак переноса
0
|
|||||||||||
|
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
|
||||||
| 04.07.2019, 09:06 [ТС] | ||||||
|
Данный вариант не подходит. Я нашел решение данного вопроса.
0
|
||||||
|
54 / 11 / 0
Регистрация: 28.11.2017
Сообщений: 50
|
|
| 04.07.2019, 10:29 | |
|
На 29-й строке сравнение с true лишнее, функция и так возвращает булево значение. Да и сама функция - лишняя. Можно блоки из функции запихать туда же на 29-ю строку, только там не возвращать булево значение, а присваивать строку. А там где сейчас 33-я продолжить else if для if верхнего уровня.
А чем не устроила идея выводить сразу все ошибки пользователя, чтобы он их разом все исправил, а не издеваться над ним, отрезая хвост по кусочкам? Хотя, статистикой ошибок пользователя заваливать тоже не стоит. Было бы прикольно, чтобы под каждым импутом сразу выводилась своя ошибка. Разве трудно поместить под каждый импут дивчик с маленьким, красным, конкретным текстом, а самим импутам задать обработчики на событие keyup, где будет та же самая проверка, только теперь для value конкретного импута. Тут логика будет обратная - пока удовлетворяет неправильным условиям задавать дивам дисплей блок, набрал правильно - дисплей none. Тут же в блоке и сам бордюр импута наверно можно в красный покрасить, как в каком-то кино видел.
0
|
|
|
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
|
|
| 04.07.2019, 19:14 [ТС] | |
|
По поводу сразу все выводить в мобильной версии у меня это больше места занимало бы. По поводу 29й строки согласен. Вообще я сырой вариант выложил как только получилось. По поводу функции мне показалось так проще и в ту же систему условий вписывается. Под каждым input вывод ошибки не практичен. А вот идея с цветом бордюра как самого простого варианта отображения корректности ввода неплохая идея. Вспомнилось..на некоторых сайтах галочки справа например появляются напротив поля которое ввели корректно и крестик если нет.
Спасибо за идеи. Думаю кое что внедрю у себя. Добавлено через 4 минуты А по поводу замены фунции на условия.. не получилось у меня иначе.мне надо было сначала анализировать пустой ли email..а уж потом проверять что конкретно введено..если бы без проверки на пустое..вопрос бы не возник..функция же решила данный вопрос
0
|
|
|
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
|
||||
| 04.07.2019, 19:27 | ||||
|
юзер оставил поле пустым, а оно обязательно к заполнению и это же поле должно содержать не менее 5 символов Как юзер поймет в чем он ошибся по цвету бордера? Наверное тогда уж как-то совместить
0
|
||||
|
54 / 11 / 0
Регистрация: 28.11.2017
Сообщений: 50
|
|||||||
| 05.07.2019, 03:59 | |||||||
|
Вот, на примере известного стиха сделана такая же конструкция, а заодно это образец культурного взаимодействия с пользователем. Представьте, что вместо вопросов стоят нормальные условные выражения, результат которых true или false. Так вот я специально, также как и у вас, один блок вставляю в другой. Очевидно, что, чтобы взять книги нужно залезть в шкаф, поэтому блок про книги внутри блока про шкаф. Но это никак не ломает течение логики. Тронули книги - строка про шкаф перепишется на книги. Или если присвоение строки про шкаф будет идти else в блоке про книги, то и переписывать не надо. Таких вставок в глубину могло быть сколько угодно, но в результате код вернёт только какую-то одну претензию к пользователю.
0
|
|||||||
|
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
|
|
| 05.07.2019, 22:05 [ТС] | |
|
Принцип понял. Спасибо большое. Потренируюсь в этом вопросе
0
|
|
| 05.07.2019, 22:05 | |
|
Помогаю со студенческими работами здесь
10
Не срабатывает условие. Почему?
Почему срабатывает первое условие? проверка баланса Почему не срабатывает условие при проветке атрибутов? Не срабатывает условие в цикле while не могу понять почему Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|