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

Форум PHP

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

 

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

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

тема: как организовать Backspace
 
 автор: Dazzl   (24.08.2011 в 10:28)   письмо автору
 
 

Люди я для ограничения ввода лишних символов я пользуюсь кодом javascript вот:

function rr()
{
var str = window.qq.vvodname.value;
if(/[\/\s\|'"\\]/.test(str)) {alert("Недопустимые символы в строке 'Логин'"); window.qq.vvodname.value = ""; }

при вводе лишних символов все стираться и поевляеться табличка посреди экрана.

Можно ли сделать так чтоб он молча запрещал ввод лишних символов при этом не стирая все, т.е. это вроде делаеться через backspace, но тока я не знаю как это прописать?

  Ответить  
 
 автор: Киналь   (24.08.2011 в 10:44)   письмо автору
 
   для: Dazzl   (24.08.2011 в 10:28)
 

По событию onChange проверяйте содержимое поля. Если есть недопустимые символы, то стираете их, а оставшуюся строку снова пишете в поле. Говорю «символы», а не «символ», что текст в поле может попасть с помощью Ctrl-V.

  Ответить  
 
 автор: Dazzl   (24.08.2011 в 10:46)   письмо автору
 
   для: Киналь   (24.08.2011 в 10:44)
 

Теоритически я понял, но на практике туго придстовляю. Немогли бы вы прописать это... или припесать к моему коду

  Ответить  
 
 автор: Киналь   (24.08.2011 в 11:10)   письмо автору
 
   для: Dazzl   (24.08.2011 в 10:46)
 

А что именно вызывает затруднения? У вас же есть уже функция; как вы её вызываете?

  Ответить  
 
 автор: (Sandr)   (25.08.2011 в 03:14)   письмо автору
 
   для: Dazzl   (24.08.2011 в 10:28)
 

Как вариант, чтобы всё не стиралось уберите это window.qq.vvodname.value = ""; и всё)

  Ответить  
 
 автор: Саня   (25.08.2011 в 07:53)   письмо автору
 
   для: Dazzl   (24.08.2011 в 10:28)
 

<script>
function delChars(o) {
  o.value = o.value.replace(/[\/\s\|'"\\]/g, '');
}
</script>
<input onkeyup="delChars(this)" onchange="delChars(this)">

  Ответить  
 
 автор: Dazzl   (25.08.2011 в 09:19)   письмо автору
 
   для: Саня   (25.08.2011 в 07:53)
 

Спасибо всем, Саня твой код оправдал все мои ожидания спасиб))

  Ответить  
 
 автор: Киналь   (25.08.2011 в 10:17)   письмо автору
 
   для: Саня   (25.08.2011 в 07:53)
 

Хм. А разве может быть onKeyUp, но не onChange? Ну кроме перемещения курсора стрелками)

  Ответить  
 
 автор: Dazzl   (25.08.2011 в 10:28)   письмо автору
 
   для: Киналь   (25.08.2011 в 10:17)
 

Все ок! код работае как надо: сразу стирает все запрещённые символы как вводишь их

  Ответить  
 
 автор: Valick   (25.08.2011 в 12:29)   письмо автору
 
   для: Dazzl   (25.08.2011 в 10:28)
 

а в чем смысл? ну отключил я JS и пишу что хочу...
надеюсь на сервере все-таки проверяете, что там вам "прилетело"

  Ответить  
 
 автор: Саня   (25.08.2011 в 18:14)   письмо автору
 
   для: Valick   (25.08.2011 в 12:29)
 

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

  Ответить  
 
 автор: Саня   (25.08.2011 в 18:05)   письмо автору
 
   для: Киналь   (25.08.2011 в 10:17)
 

onchange — не клавиатурное событие. Срабатывает при потере фокуса, если контент поля изменился. В данном конкретном случае если убрать onchange, то строку с невалидными данными можно набрать в любом текстовом редакторе и вставить мышкой (правая кнопка -> вставить). Событие onkeyup не произойдёт — данные не отфильтруются.

  Ответить  
 
 автор: Киналь   (25.08.2011 в 23:27)   письмо автору
 
   для: Саня   (25.08.2011 в 18:05)
 

А, я думал, onChange срабатывает в сам момент изменения, а не при потере фокуса, и onKeyUp показалось лишним. Но теперь понятно, спасибо.

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

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