| 
 | 
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Здравствуйте! Что-то подобное здесь в форуме уже обсуждалось, но я не смог найти ответ на свой вопрос. Хочу реализовать проверку значения в поле input после изменения и, если оно неверное (например, не соответствует маске ввода, указано недопустимое значение и т.д.), то возвращать фокус на этот элемент. Напрашивается onchange, но слышал, что он не всегда работает для input. Но это ладно, попробовал реализовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Спасибо С уважением, Семен Попов ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 14:45 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  onkeypress ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 14:55 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Немного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 15:09 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Semen PopovНемного не то. В этом случае я замучаю пользователя, для которого при каждом неверном движении будет выдаваться сообщение. Проверку значения нужно проводить, когда пользователь переводит фокус, т.е. не давать уйти с input, пока не будет введено правильное значение. на самом деле, когда не дают уйти, пока не напишешь ещё обиднее, чем когда не дают писать Лучше не давать сообщений до отправки формы. Можно просто не давать писать "не цифры". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 15:23 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  onfocusout? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 15:28 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  А зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте. _________________ "Helo, word!" - 17 errors 56 warnings ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 15:49 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Antonariyonfocusout? Проверил. Это то, что я хотел. Но работает только в IE, причем достаточно неоднозначно. Например, если перевести фокус на select, то срабатывает аж три раза. Поэтому будет также доставлять неудобства. Ex_SoftА зачем сразу алерт давать-то? Ловите onkeyup и, в случае невалидности, подкрасьте фон input'а каким-нить ядовито-устрашающим колером: пользователю сразу станет понятно, что он лобуду вводит, а при выходе сравнивайте колор с инвалидным, и, если они равны - не выпускайте. Скорее всего это самый правильный вариант. Сначала у меня тоже была идея проверять все значения при нажатии на сабмит формы. Подкраска инпутов улучшает эту идею. Но проверка значений в сабмите требует уникальной идентификации инпутов по id, когда в какой-нибудь js-функции я точно знаю какой элемент и какое значение проверяю. До этого момента справлялся без id, но похоже придется к нему прибегнуть. Спасибо ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 16:35 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Antonariyonfocusout? onblur это называется =) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 16:44 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  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 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 17:17 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ex_Soft Спасибо. Совсем без id ваш вариант все равно не обходится. Да и страница загружается сравнительно сложными функциями-обработчиками. Хотя выглядеть это будет более универсально. Но, вы и сами уже говорите о некоторых минусах этого варианта. Хотелось бы что-то по-проще. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 17:34 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Semen Popov Совсем без id ваш вариант все равно не обходится Совсем без id вообще обойтись нельзя: мы же не можем смешать проверку тарифа/франшизы (double) и даты, 4 example. Конечно, если Вы хотите один унифицированный checker на все input'ы. Ему же нуна как то узнать что и на что проверять. Вот тут и абстрагируюмся от id и переходим на атрибуты. Опять же: для определенных условий некоторые input'ы - обязательны, а для других - нЭт. А НСИ у Вас по любому где-нить, в той же самой БД, все равно лежит в привязке к контролу. Другое дело, что если чего-то изменяется - то рихтуется тока НСИ в БД, а все остальное подымается автоматом без рихтовки кода. Согласен - сложновато. Но: "...лучче пол-дня потратить, зато потом - за пол-часа долететь..." Я Вас не уговариваю и не агитирую : хозяин - барин... _________________ "Helo, word!" - 17 errors 56 warnings ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 17:57 | 
  
  
  
   | 
||
| 
 
Проверка значения в input 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  А я вот непойму, почему автор так нежелает использовать id? Semen PopovСовсем без id ваш вариант все равно не обходится. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 20:08 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=22&msg=34470364&tid=1458444]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    63ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    49ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 14ms | 
| total: | 170ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...