|
|
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
Сразу говорю, опыта нет. Написал скрипт для проверки на клиенте вводимых данных, в примере 2 поля: целое и десятичное. Проверка по первому по порядку полю работает, вторая нет. Меняю порядок полей - все равно первая работает, вторая нет! Ткните носом в ошибку, плиз. Ниже текст: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 17:10 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
Ну ты наваял! А если полей будет в 5, 10 раз больше? А если нужна проверка на время, дату или сумму денег? - С такими стараниями твой код будет расти геометрически ... Посоветую путь, по которому пошел сам: откуда-то твои страницы берутся? в смысле, серверная часть есть? - пусть она на тебя и работает. К примеру, у меня на серваке стоит Java, я передаю AJAX-запросом на сервер все поля, а на сервере уже разбираю их посредством функций парсирования чисел, дат и т.д. Если парсинг выдает исключение, возвращаю сообщение назад на страницу и выдаю ошибку, если все проходит - делаю сабмит. К примеру, на клиенте обработать время - голову сломать можно, особенно если формат может быть европейский и американский, а у меня вся обработка вмещается в код (извините, что Java) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 22:15 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
IDVsbruckПосоветую путь, по которому пошел сам: откуда-то твои страницы берутся? в смысле, серверная часть есть? - пусть она на тебя и работает. К примеру, у меня на серваке стоит Java, я передаю AJAX-запросом на сервер все поля, а на сервере уже разбираю их посредством функций парсирования чисел, дат и т.д. Не всегда полезно использовать AJAX, если в том нет необходимости. 2 chenosov: давайте сначала заменим вашу поэму на нечто типа нижеследующего, а затем продолжим обсуждение и возможные варианты реализации. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. P.S. нестандартные параметры тегов (типа check_message="Целое!" check_pattern="I6") будут работать только в IE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 01:51 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
2 illion Огромное мерси за помощь. Попробую ваш вариант. Мой не работал, как оказалось из-за модификатора 'g', который стоял в примере : Код: plaintext 1. 2. 3. 4. 5. Убрал и все поехало. Почему, кстати, не знаете? illionP.S. нестандартные параметры тегов (типа check_message="Целое!" check_pattern="I6") будут работать только в IE. Не, в FireFox работает, проверил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 10:20 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
chenosov2 illion Мой не работал, как оказалось из-за модификатора 'g', который стоял в примере : Код: plaintext 1. Не знаю. Честно говоря, мой мозг отказывается осмысливать ваш пример. Где-то на середине возникает переполнение памяти, и приходится читать заново. Разе на третьем наступило зацикливание и процесс был прерван :-). Кстати, почему вы экранируете слэш только в половине случаев? Например - "\\d{1," даст в итоге \d{1, , а вот "[\+\-]?" даст [+-]? . То же самое для "([\.\,]+\\d{0,". В итоге вы не получите валидное регулярное выражение. P.S. Хинт: конструкция newpattern=newpattern+"строка" эквивалентна newpattern+="строка" chenosov illionP.S. нестандартные параметры тегов (типа check_message="Целое!" check_pattern="I6") будут работать только в IE. Не, в FireFox работает, проверил Мда? У меня подобное в ни в Опере, ни в FF не работает (по крайней мере в FF 2.0.0.4 и FF 2.0.0.11 - точно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 12:10 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
На самом деле все очень просто. У меня есть желание проверять валидность введённых данных на клиенте, задавая несложным образом формат данных. Например, -I6 означает, что должно быть введено целое число со знаком размерностью до 6 цифр. D12.2 - десятичное число без знака с размерностью 12 знаков, и до 2 цифр после запятой (точки), бабки, к примеру. Все что кажется вам диким, видимо таковым и является, т.к. знакомство с JS исчерпывается у меня 2 днями. Кстати, функцию я все-таки сделал и подключил, работает нормально, добавил туда еще проверку формата e-mail. Все это я делаю не от хорошей жизни. В программах PHP, которые у нас работают, сейчас можно ввести в цифровое поля "Дядя Вася" - программа все это сожрет и запишет в базу на Mysql 0, даже не выдав ошибки, такие настройки у сервера. Конечно, можно эту туфту отправить на сервер и там устроить проверку, но мне кажется этот путь нерациональным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 12:56 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
chenosovНа самом деле все очень просто. У меня есть желание проверять валидность введённых данных на клиенте, задавая несложным образом формат данных. Например, -I6 означает, что должно быть введено целое число со знаком размерностью до 6 цифр. D12.2 - десятичное число без знака с размерностью 12 знаков, и до 2 цифр после запятой (точки), бабки, к примеру. Все что кажется вам диким, видимо таковым и является, т.к. знакомство с JS исчерпывается у меня 2 днями. Кстати, функцию я все-таки сделал и подключил, работает нормально, добавил туда еще проверку формата e-mail. Все это я делаю не от хорошей жизни. В программах PHP, которые у нас работают, сейчас можно ввести в цифровое поля "Дядя Вася" - программа все это сожрет и запишет в базу на Mysql 0, даже не выдав ошибки, такие настройки у сервера. Конечно, можно эту туфту отправить на сервер и там устроить проверку, но мне кажется этот путь нерациональным. Конечно можно, и не только можно но и нужно. Потому как не у всех пользователей включены скрипты. 100%-ной гарантии того что все давнные придут валидные все равно нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 13:47 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
chenosovУ меня есть желание проверять валидность введённых данных на клиенте, задавая несложным образом формат данных. В таком случае я вам предлагаю отказаться все-таки от вашей навороченной функции. Главный ее недостаток - даже не множество излишних операций, и не нечитабельность, и не бОльшее время исполнения, а трудность масштабирования. Через неделю вы решите, что неплохо бы еще и даты проверять, и что - отправитесь дописывать еще два километра кода? Переделаю свой пример к вашей задаче: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Почитайте о событиях onchange и onblur - они позволят проверять значения по ходу заполнения полей, а не в конце. chenosov Все это я делаю не от хорошей жизни. В программах PHP, которые у нас работают, сейчас можно ввести в цифровое поля "Дядя Вася" - программа все это сожрет и запишет в базу на Mysql 0, даже не выдав ошибки, такие настройки у сервера. Конечно, можно эту туфту отправить на сервер и там устроить проверку, но мне кажется этот путь нерациональным. Крайне неправильный подход. Данные на стороне сервера проверять обязательно ! Иначе делаете систему серьезно уязвимой (клиентские проверки можно и обойти). Проверка на клиенте нужна для сокращения времязатрат на введение данных заново в случае неверно введенных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 13:48 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
Это означает, что если мне понадобится в дополнению к D12.2 добавить D12.3 и D11.2 я должен менять код js процедуры. Не очень-то это удобно. Код: plaintext 1. Согласен, но здесь я пойду немного другим путем - проверки в триггерах СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 17:26 |
|
||
|
Плиз помогите по JS
|
|||
|---|---|---|---|
|
#18+
chenosovСогласен, но здесь я пойду немного другим путем - проверки в триггерах СУБД. Не совсем правильный подход. Обработать там ты можешь нормально, а вернуть результат на страницу? А сообщение? - Все равно это работа сервера, зачем дополнительно грузить базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35212009&tid=1456720]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 482ms |

| 0 / 0 |
