Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка формы без отправки
 
 автор: lifead   (25.04.2009 в 06:49)   письмо автору
 
 

Доброе время суток.
Подскажите пожалуйста вот по какому вопросу: Есть некие поля формы:
...
Введите Имя: <input name="name1" type="text" value=""><br>
Введите Отчество: <input name="name2" type="text" value="">
...
как сделать так что-бы пользователь мог вводить только русские буквы, латинские и цифры. Слышал что можно сделать с помощью JS. Искал в интернете, но там в основном примеры как проверить поля формы после нажатия на кнопку "отправить", а мне необходимо чтобы пользователь смог вводить только разрешённые символы.

  Ответить  
 
 автор: BlackApricot   (25.04.2009 в 08:12)   письмо автору
 
   для: lifead   (25.04.2009 в 06:49)
 

Сложная тема. Просто может не получиться.
По любому нужно использовать pattern.test(), или писать свою функцию проверки.
Сложности будут с курсором. Мне удалось реализовать только в осле 6.0, мне там кроссбраузерность была не нужна(всё упаковалось в *.CHM), и это ещё проблема.
Сложности не с pattern.test(), тут всё просто.
Надо думать, пробовать варианты....

  Ответить  
 
 автор: lifead   (25.04.2009 в 10:20)   письмо автору
 
   для: BlackApricot   (25.04.2009 в 08:12)
 

А простую проверку на вводимые символы с клавиатуры, т.е. если символ не соответствует набору то удалять его, так нельзя сделать? (или что-нибудь в этом духе)

  Ответить  
 
 автор: BlackApricot   (25.04.2009 в 16:44)   письмо автору
 
   для: lifead   (25.04.2009 в 10:20)
 

Тест() и репласе() и дадут тебе простую проверку, но только последнего символа в строке, как только исправят ошибку гдето в строке, тут и начнётся бардак с курсором, но повторяю, с этой фигнёй воевал только в осле и в прошлом году. Это если ты будешь строку брать из валуе, а потом исправленную возвращать назад. Просто тогда не нашёл как перехватить символ не вводя его в текстовое поле, но вроде это можно. Поэтому безболезнено стереть можно последний символ, иначе курсор начинает прыгать куда хотелось бы микрософту, а не тебе. Есть способы пристроить курсор в нужную позицию, вот тут и начинается веселуха.

Чтобы реально подсказывать, нужно знать реальное положение дел, иметь весь код и понимать, что ты хочешь от этого кода. Но всё это может иметь только хозяин.

  Ответить  
 
 автор: PAT   (25.04.2009 в 10:59)   письмо автору
 
   для: lifead   (25.04.2009 в 06:49)
 

>"мне необходимо чтобы пользователь смог вводить только разрешённые символы."

Прямо таки НЕОБХОДИМО?
А если пользователь введёт, например, пробел или дефис, то что случится?
Небеса упадут на землю? Или земная твердь разверзнется?

И что делать пользователю с фио "Полад Бюль Бюль оглы"?
Ведь у него в отчестве ("Бюль оглы") есть недопустимый для вас символ пробела?
Я уж не говорю про Абдурахмана-ибн-Хаттаба, про Бендера-Задунайского...
или про несчастного малыша по этой ссылке:-)

В общем, в следующий раз пишите не про "необходимо", а честно - "такой вот я дурак, что ничего лучшего, чем описанный выше маразм, для своего сайта не придумал".



Проверка ввода символов в текcтовое поле В ИДЕАЛЕ решается только через setTimeout, ибо если ввод с клавиатуры можно отследить ВО ВСЕХ браузерах, то ввод методом копи-пасте отслеживается только в MSIE.

Пример включения/выключения таймера проверки я здесь уже давал - смотрите http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=64126
Что же до условия проверки ("латинские в обоих регистрах + русские в обоих регистрах + цифры"), то оно будет выглядеть приблизительно так:

if (this.form.name1.value.replace (/[a-zа-я0-9]/gi, '').length == 0) alert ('GOOD!');
else alert ('BAD!');

  Ответить  
 
 автор: lifead   (27.04.2009 в 06:46)   письмо автору
 
   для: PAT   (25.04.2009 в 10:59)
 

>>"мне необходимо чтобы пользователь смог вводить только разрешённые символы."
>
>Прямо таки НЕОБХОДИМО?
>А если пользователь введёт, например, пробел или дефис, то что случится?
>Небеса упадут на землю? Или земная твердь разверзнется?
>
>И что делать пользователю с фио "Полад Бюль Бюль оглы"?
>Ведь у него в отчестве ("Бюль оглы") есть недопустимый для вас символ пробела?
>Я уж не говорю про Абдурахмана-ибн-Хаттаба, про Бендера-Задунайского...
>или про несчастного малыша по этой ссылке:-)
>
>В общем, в следующий раз пишите не про "необходимо", а честно - "такой вот я дурак, что ничего лучшего, чем описанный выше >маразм, для своего сайта не придумал".

Уважаемый PAT, зачем Вы разводите всю эту демагогию, Вам что заняться нечем или поиздеваться решили? Я вообще то просил помочь с решением конкретного вопроса, и не просил высказывать Ваше мнение по целесообразности приведенного примера, и если Вы каким то своеобразно воспринимаете свою личность, то не переносите своё отношение к себе на меня.

  Ответить  
 
 автор: PAT   (27.04.2009 в 09:44)   письмо автору
 
   для: lifead   (27.04.2009 в 06:46)
 

>"Я вообще то просил помочь с решением конкретного вопроса"

И что, в моём сообщении вы конкретной помощи в решении вашего "конкретного вопроса" совсем-совсем не увидели?

Или сработала неустоявшаяся психика?
Как у Сары в анекдоте - когда её назвали старой "бл...ью", она возмутилась - почему "старая"?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования