powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка значения в input
13 сообщений из 13, страница 1 из 1
Проверка значения в input
    #34469872
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Что-то подобное здесь в форуме уже обсуждалось, но я не смог найти ответ на свой вопрос.
Хочу реализовать проверку значения в поле input после изменения и, если оно неверное (например, не соответствует маске ввода, указано недопустимое значение и т.д.), то возвращать фокус на этот элемент. Напрашивается onchange, но слышал, что он не всегда работает для input.
Но это ладно, попробовал реализовать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
function CheckInsNum(ElObj) {
  if (!isValidInsNum(ElObj.value)) {
     alert('Неверный формат страхового номера!');
     ElObj.focus();
     return false;
  } else 
     return true;
}
...
<input type="text" size="11" value="<%=person.insnum%>" onchange="return CheckInsNum(this);"/>
...
В результате проверка проходит (выходит сообщение), но фокус все равно перемещается на другой элемент. Может это не так нужно делать?

Спасибо
С уважением, Семен Попов
...
Рейтинг: 0 / 0
Проверка значения в input
    #34469917
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onkeypress
...
Рейтинг: 0 / 0
Проверка значения в input
    #34469999
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение.
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470054
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen PopovНемного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение.
на самом деле,
когда не дают уйти, пока не напишешь ещё обиднее, чем когда не дают писать
Лучше не давать сообщений до отправки формы. Можно просто не давать писать "не цифры".
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470076
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onfocusout?
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470177
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте.
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470364
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyonfocusout?
Проверил. Это то, что я хотел. Но работает только в IE, причем достаточно неоднозначно. Например, если перевести фокус на select, то срабатывает аж три раза. Поэтому будет также доставлять неудобства.
Ex_SoftА зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте.
Скорее всего это самый правильный вариант. Сначала у меня тоже была идея проверять все значения при нажатии на сабмит формы. Подкраска инпутов улучшает эту идею. Но проверка значений в сабмите требует уникальной идентификации инпутов по id, когда в какой-нибудь js-функции я точно знаю какой элемент и какое значение проверяю. До этого момента справлялся без id, но похоже придется к нему прибегнуть.
Спасибо
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470401
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyonfocusout?
onblur это называется =)
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470564
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen Popov
До этого момента справлялся без id, но похоже придется к нему прибегнуть.

Зачем? Отдаете на клиента в чиста
конкретную вводиловку конкретного страхового продукта (для него ж Вам id - известны) info об его НСИ (тарифы, франшизы, их min/max значения etc.) в общем виде а-ля: id control'а - условия проверки. Вот и вся частность.
Дальше все уже унифицированно:
1. При загрузке страницы унифицированная функция ищет, указанные в НСИ id и выставляет для них пользовательские атрибуты проверки (type, required, min, max, etc.)
2. При каждом телодвижении юзвера другая унифицированная функция пробегает по всем элементам и проверяет на валидность те у которых установлены атрибуты для проверки, выставляя невалидным какой-нить инвалидный колер.
3. При submit'е формы третья унифицированная функция бежит и сверяет колер control'ов с инвалидным: при находжении такового на него передается фокус (можно даже "подмигнуть" им для тех, кто на бронепоезде
). Ежели все oB! - страничке разрешается про'submit'иться.
Вот, в двух словах, примерно так...

P.S. Причем, если input'ы текстовые (у мну проблема только с ComboBox'ом), то юзвер ваще работает только enter'ом, практически не прикасаясь к мышке, чтобы перейти от одного control'а к другому...

Ложка дегтя: если control'ов довольно таки довольно, то все это может довольно таки довольно подтормаживать
Как вариант - п.2. выполнять не при каждом телодвижении, а, 4 example, при потере фокуса или перед submit'ом... Правда в этом случае а-ля live interface (P.S.) - накрывается медным тазом...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470652
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
Спасибо. Совсем без id ваш вариант все равно не обходится. Да и страница загружается сравнительно сложными функциями-обработчиками. Хотя выглядеть это будет более универсально. Но, вы и сами уже говорите о некоторых минусах этого варианта. Хотелось бы что-то по-проще.
...
Рейтинг: 0 / 0
Проверка значения в input
    #34470784
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen Popov
Совсем без id ваш вариант все равно не обходится

Совсем без id вообще обойтись нельзя: мы же не можем смешать проверку тарифа/франшизы (double) и даты, 4 example. Конечно, если Вы хотите один унифицированный checker на все input'ы. Ему же нуна как то узнать что и на что проверять. Вот тут и абстрагируюмся от id и переходим на атрибуты. Опять же: для определенных условий некоторые input'ы - обязательны, а для других - нЭт. А НСИ у Вас по любому где-нить, в той же самой БД, все равно лежит в привязке к контролу. Другое дело, что если чего-то изменяется - то рихтуется тока НСИ в БД, а все остальное подымается автоматом без рихтовки кода. Согласен - сложновато. Но: "...лучче пол-дня потратить, зато потом - за пол-часа долететь..."
Я Вас не уговариваю и не агитирую
: хозяин - барин...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Проверка значения в input
    #34471074
mrJust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я вот непойму, почему автор так нежелает использовать id?
Semen PopovСовсем без id ваш вариант все равно не обходится.
...
Рейтинг: 0 / 0
Проверка значения в input
    #34471567
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем. Обязательно учту ваши советы
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка значения в input
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]