Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка значения в input / 13 сообщений из 13, страница 1 из 1
18.04.2007, 14:45
    #34469872
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Здравствуйте!
Что-то подобное здесь в форуме уже обсуждалось, но я не смог найти ответ на свой вопрос.
Хочу реализовать проверку значения в поле 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
18.04.2007, 14:55
    #34469917
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
onkeypress
...
Рейтинг: 0 / 0
18.04.2007, 15:09
    #34469999
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Немного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение.
...
Рейтинг: 0 / 0
18.04.2007, 15:23
    #34470054
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Semen PopovНемного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение.
на самом деле,
когда не дают уйти, пока не напишешь ещё обиднее, чем когда не дают писать
Лучше не давать сообщений до отправки формы. Можно просто не давать писать "не цифры".
...
Рейтинг: 0 / 0
18.04.2007, 15:28
    #34470076
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
onfocusout?
...
Рейтинг: 0 / 0
18.04.2007, 15:49
    #34470177
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
А зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте.
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
18.04.2007, 16:35
    #34470364
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Antonariyonfocusout?
Проверил. Это то, что я хотел. Но работает только в IE, причем достаточно неоднозначно. Например, если перевести фокус на select, то срабатывает аж три раза. Поэтому будет также доставлять неудобства.
Ex_SoftА зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте.
Скорее всего это самый правильный вариант. Сначала у меня тоже была идея проверять все значения при нажатии на сабмит формы. Подкраска инпутов улучшает эту идею. Но проверка значений в сабмите требует уникальной идентификации инпутов по id, когда в какой-нибудь js-функции я точно знаю какой элемент и какое значение проверяю. До этого момента справлялся без id, но похоже придется к нему прибегнуть.
Спасибо
...
Рейтинг: 0 / 0
18.04.2007, 16:44
    #34470401
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Antonariyonfocusout?
onblur это называется =)
...
Рейтинг: 0 / 0
18.04.2007, 17:17
    #34470564
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
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
18.04.2007, 17:34
    #34470652
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Ex_Soft
Спасибо. Совсем без id ваш вариант все равно не обходится. Да и страница загружается сравнительно сложными функциями-обработчиками. Хотя выглядеть это будет более универсально. Но, вы и сами уже говорите о некоторых минусах этого варианта. Хотелось бы что-то по-проще.
...
Рейтинг: 0 / 0
18.04.2007, 17:57
    #34470784
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка значения в input
Semen Popov
Совсем без id ваш вариант все равно не обходится

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


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