Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 24.09.2008, 10:59
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Ну и что, зато помог очень и времени много потратил.

У тебя, кстати, какая версия ИЕ?
Ответить с цитированием
  #42 (permalink)  
Старый 24.09.2008, 11:10
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

у меня есть ИЕ6, ИЕ7, ФФ2, ФФ3, Сафари, Опера 9.5, Хром...

Проверял я в ИЕ7, сейчас посмотрю в ИЕ6...
Ответить с цитированием
  #43 (permalink)  
Старый 24.09.2008, 11:13
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Я тут подумал про ctrl+Z в ИЕ.
Походу ИЕ сбрасывает список изменений, когда перезаписывается value у инпута. А так как я реализовал именно этим способом (так как по другому выходило очень сложно и глючно), то победить можно только преписав всё полностью на другой алгоритм.
Ответить с цитированием
  #44 (permalink)  
Старый 24.09.2008, 12:07
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

А ты знаешь другой способ :eek:

Последний раз редактировалось Kos, 24.09.2008 в 12:10.
Ответить с цитированием
  #45 (permalink)  
Старый 24.09.2008, 12:09
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

У меня, кстати, первый запрещ. символ в ИЕ 7 вылазит.
Класный наборчик, а у меня тока:
Opera 9.5, FireFox 3, IE7, Chrome
Ответить с цитированием
  #46 (permalink)  
Старый 24.09.2008, 12:10
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

другой способ - как я делал с маской:
на кейдаун и кейпресс проверять клавиши и если они подходят, то возвращать true. Тогда value не будет перезаписываться, а будет стандартно средставми браузера просто дописываться в поле (просто не будут допускаться невалидные клавиши). Но в твоём случае возникает слишком много проблем.
Можешь попробовать переделать.
Ответить с цитированием
  #47 (permalink)  
Старый 24.09.2008, 12:25
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Но я чё-то не догоняю как одновременно проверить кодклавиши из двух событий. Это тот самый момент, на котором я обратился за помощью: запрещая невалидные клавиши в онкейпрессе, я отключаю функц. клавиши, а подругому как я не знаю. Я же так и не понял как ты это сделал в маске. Объясни логику, попробую. А что за проблемы возникают?
Ответить с цитированием
  #48 (permalink)  
Старый 24.09.2008, 12:36
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

проблемы в том, что у меня в маске ограниченный набор валидных символов
А у тебя - очень большой набор (точки, функциональные клавиши и т.д.). соответственно, чотбы их пропускать во всех бразерах надо писать очень сложные правила проверки...

У меня простые правила проверки, так как мне надо пропускать небольшое кол-во кодов. Остальные обрубаются.
Тебе придётся писать сложные разветвлённые правила на кучу кодов клавиш.

Проверка кодов у меня стоит в функции "P" (ну и делы с бэкспейсами проверяются дополнительно в onkeydown).
Ответить с цитированием
  #49 (permalink)  
Старый 24.09.2008, 13:33
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Ладно начнем разбиратся по пордку:
во-первых, вся функция setMask вызывается у нас при срабатывании события онкейпресс, но в этой ф-ции ты на это событие вешаешь другую ф-цию. Я ставил алерты, проверял - первый раз он срабатывает из сетмаск, а остальные из той другой ф-ции (вот здесь меня интересует, как такое вообще возмжно и зачем это). Помимо этого есть еще 2а события или не события sC и gS (по моему ты сам их добавил, тогда возникает вопрос: в js к объектам можно добавлять собственные cв-ва и методы?) - они как я понял для сохранения и восстановления пзиции курсора. Но зачем они в маске, если ты говоришь, что в маске ты не переписываешь value. За что отвечает G в функции обработки онкейпресса, и почему в самом начале мы присваеваем ему !c, когда c типа string (здесь мне интересно что может получится от не с, и вообще зачем это, если мы знаем с). Ответь пожалуйста пока на эти вопросы.
Ответить с цитированием
  #50 (permalink)  
Старый 24.09.2008, 17:09
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Сообщение от Kos Посмотреть сообщение
Ладно начнем разбиратся по пордку:
во-первых, вся функция setMask вызывается у нас при срабатывании события онкейпресс, но в этой ф-ции ты на это событие вешаешь другую ф-цию. Я ставил алерты, проверял - первый раз он срабатывает из сетмаск, а остальные из той другой ф-ции (вот здесь меня интересует, как такое вообще возмжно и зачем это). Помимо этого есть еще 2а события или не события sC и gS (по моему ты сам их добавил, тогда возникает вопрос: в js к объектам можно добавлять собственные cв-ва и методы?) - они как я понял для сохранения и восстановления пзиции курсора. Но зачем они в маске, если ты говоришь, что в маске ты не переписываешь value. За что отвечает G в функции обработки онкейпресса, и почему в самом начале мы присваеваем ему !c, когда c типа string (здесь мне интересно что может получится от не с, и вообще зачем это, если мы знаем с). Ответь пожалуйста пока на эти вопросы.
setCursor (sC), getCursor (gC) - это я написал, так как надо ставить курсор в нужную позицию при:
1) удалении выделенного куска
2) пропуске уже присутствующих символов маски (скобки, тире и тд.)
3) при вставке из буфера

К объектам можно добавлять что угодно...

переменная G инициализируется значением !c. Так как в с у нас строка, то её значение будет интерпретироваться как true в логических операциях, соотвтетсвенно !c = false.

Итак, для чего нужно G. В ФФ дэл и бэкспейс передаются и в онкейдаун и в онкейпресс. У других они не передаются в онкейпресс. Чтобы в онкейпрессе второй раз не удалять символы я ставлю в онкейдауне проверку на эти клавиши и проставляю G. Итого при данных клавишах в онкей прессе происходит выход на первой строке.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск