Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка вводимых символов 
:(
    Опции темы
MrDmitry
Дата 12.5.2011, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



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

Код

Логин<br>
            <input type="text" size="40" id="login" onkeypress="CountLogin('login')" onfocus="CountLogin('login')" 
          onkeyup="CountLogin('login')"><span class="mini" id="login_correct"> не менее 5 символов</span>
           <div class="mini">введено: <span id="login_view">0</span></div>



Код

function AlphaArray(items, correct) {
var noalpha = new Array('й', 'Й', 'ц', 'Ц', 'у', 'У', 'е', 'Е', 'н', 'Н', 'г', 'Г',
'ш', 'Ш', 'щ', 'Щ', 'з', 'З', 'х', 'Х', '[', '{', 'ъ', 'Ъ', ']', '}', 'ф', 'Ф', 'ы', 'Ы',
'в', 'В', 'А', 'а', 'п', 'П', 'р', 'Р', 'о', 'О', 'л', 'Л', 'д', 'Д', 'ж', 'Ж', ';', ':', 'э', 'Э',
'"', 'я', 'Я', 'ч', 'Ч', 'с', 'С', 'м', 'М', 'и', 'И', 'т', 'Т', 'ь', 'Ь', 'б', 'Б', ',', '<', 'ю', 'Ю',
'>', '/', '?', '~', '!', '#', '$', '%', '^', '№', '&', '*', '(', ')', '+', '|', 'ё', 'Ё', ' ');

var c = String.fromCharCode(items.which); 

for(var i=0; i<noalpha.length; i++) {
  if(items==noalpha[i])
   {
    result = false;
    break;
   }
   else {
     result = true;
   }
}
if(result==false){
   document.getElementById(correct).innerHTML = ' спец символы запрещены';
   document.getElementById(сorrect).className = 'acorrect';
   items.append('');
  }
}

function CountLogin(item) {
var item_view = 'login_view';
var item_correct = 'login_correct';

document.getElementById(item_view).innerHTML = document.getElementById(item).value.length++;
 if (document.getElementById(item).value.length >= 5) {
  document.getElementById(item_correct).innerHTML = ' верно';
  AlphaArray(document.getElementById(item).value,item_correct);
  document.getElementById(item_correct).className = 'correct';
 } else {
  document.getElementById(item_correct).innerHTML = ' не менее 5 символов';
  AlphaArray(document.getElementById(item).value,item_correct);
  document.getElementById(item_correct).className = 'acorrect';
 } 
 
if (document.getElementById(item).value.length >= 5) { 
$(document).ready(function(){
$.ajax({
url: '/modules/regestration/reg.php',
data : {'login':$('#login').val(), 'correct':'1',},
type : "POST",
success: function (data) {
if (data=='Логин занят'){
document.getElementById(item_correct).innerHTML = ' '+ data;
document.getElementById(item_correct).className = 'acorrect';
} else {
document.getElementById(item_correct).innerHTML = ' ' + data;
document.getElementById(item_correct).className = 'correct';
}
},
error: function(){
alert ("No PHP script: ");

   });

return false;
 });
 } 
 checkAll(); 
}


Собственно тут скрипт должен проверять на кол-во введеных символов, затем проверять на запрещенные символы (функция function AlphaArray(items, correct) ) и затем проверять существование логина в базе (ajax) все работает хорошо кроме проверки на вводимые символы. Как можно исправить?
PM MAIL   Вверх
CruorVult
Дата 12.5.2011, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



а что не работает?
PM MAIL Skype   Вверх
MrDmitry
Дата 14.5.2011, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



не работает функция 


Код

function AlphaArray(items, correct) {
var noalpha = new Array('й', 'Й', 'ц', 'Ц', 'у', 'У', 'е', 'Е', 'н', 'Н', 'г', 'Г',
'ш', 'Ш', 'щ', 'Щ', 'з', 'З', 'х', 'Х', '[', '{', 'ъ', 'Ъ', ']', '}', 'ф', 'Ф', 'ы', 'Ы',
'в', 'В', 'А', 'а', 'п', 'П', 'р', 'Р', 'о', 'О', 'л', 'Л', 'д', 'Д', 'ж', 'Ж', ';', ':', 'э', 'Э',
'"', 'я', 'Я', 'ч', 'Ч', 'с', 'С', 'м', 'М', 'и', 'И', 'т', 'Т', 'ь', 'Ь', 'б', 'Б', ',', '<', 'ю', 'Ю',
'>', '/', '?', '~', '!', '#', '$', '%', '^', '№', '&', '*', '(', ')', '+', '|', 'ё', 'Ё', ' ');
var c = String.fromCharCode(items.which); 
for(var i=0; i<noalpha.length; i++) {
  if(items==noalpha[i])
   {
    result = false;
    break;
   }
   else {
     result = true;
   }
}
if(result==false){
   document.getElementById(correct).innerHTML = ' спец символы запрещены';
   document.getElementById(сorrect).className = 'acorrect';
   items.append('');
  }
}


тоесть например в поле с id=login я ввожу Nick все впорятке
И если я ввожу "Nick "
то тоже все впорятке, а хотелось бы запетить ввод русских символов, пробелом, запятых и т.д
PM MAIL   Вверх
нуп
Дата 14.5.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Код

if(items==noalpha[i])

Сравниваете строку с символом? smile 
PM MAIL   Вверх
MrDmitry
Дата 14.5.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Не много переделал функцию.

Код

function AlphaArray(items, correct) {
var noalpha = new Array('й', 'Й', 'ц', 'Ц', 'у', 'У', 'е', 'Е', 'н', 'Н', 'г', 'Г',
'ш', 'Ш', 'щ', 'Щ', 'з', 'З', 'х', 'Х', '[', '{', 'ъ', 'Ъ', ']', '}', 'ф', 'Ф', 'ы', 'Ы',
'в', 'В', 'А', 'а', 'п', 'П', 'р', 'Р', 'о', 'О', 'л', 'Л', 'д', 'Д', 'ж', 'Ж', ';', ':', 'э', 'Э',
'"', 'я', 'Я', 'ч', 'Ч', 'с', 'С', 'м', 'М', 'и', 'И', 'т', 'Т', 'ь', 'Ь', 'б', 'Б', ',', '<', 'ю', 'Ю',
'>', '/', '?', '~', '!', '#', '$', '%', '^', '№', '&', '*', '(', ')', '+', '|', 'ё', 'Ё', ' ');

for(var k=0; k<items.length; k++){var len=k}


for(var i=0; i<noalpha.length; i++) {
  if(items[len]==noalpha[i])
   {
    result = false;
    break;
   }
   else {
     result = true;
   }
}
if(result==false){
   document.getElementById(correct).innerHTML = ' спец символы запрещены';
   document.getElementById(сorrect).className = 'acorrect';
   document.getElementById(items).value = ' ';
  }
}


Символ проверяется. Но как запретить ввод символа из массива?  И еще. Такой метод проверяет только если мы сами пишем текст, а если например мы сделаем ctr+v где последний символ не будет в списке запрещеных то такой текст пройдет ((

Это сообщение отредактировал(а) MrDmitry - 14.5.2011, 16:13
PM MAIL   Вверх
нуп
Дата 14.5.2011, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Цитата(MrDmitry @  14.5.2011,  16:13 Найти цитируемый пост)
if(items[len]==noalpha[i])

 smile 
Проверяйте каждый символ строки на вхождение в массив и если находите запрещенный то просто заменяйте его на пустое значение. Ну а вообще проще регуляркой
PM MAIL   Вверх
Amphiluke
Дата 14.5.2011, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(MrDmitry @  14.5.2011,  20:13 Найти цитируемый пост)
for(var k=0; k<items.length; k++){var len=k}

 smile 

Пардон за оффтоп.
PM   Вверх
fidres
Дата 8.6.2011, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



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

как же вы любите всё усложнять!..
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
нуп
Дата 8.6.2011, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



А если юзер вставил строку с запрещенными символами?
PM MAIL   Вверх
Evghenusi
Дата 8.6.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 1
Всего: 15



Цитата(нуп @  14.5.2011,  17:26 Найти цитируемый пост)
Ну а вообще проще регуляркой 

поддерживаю, куда проще и удобнее. как проверить ею можно, так и запретить, только используя разные функции если не ошибаюсь

Цитата(fidres @  8.6.2011,  07:53 Найти цитируемый пост)
блин.
а не проще ли использовать CASE для проверки введённой буквы?
ввёл русскую буквицу/спец.символ - получи откат и алерт.
а по выходу из компонента - проверка на валидность введённого...
(кстати, проверку на длину введённого текста - так же можно включить в CASE-ветки. возможно с переадресацией в отдельну функцию проверки.)

как же вы любите всё усложнять!.. 

эээээээ....даже не знаю что ответить.

много строчный CASE или одно строчная регулярка....наверно всё же CASE, что бы не усложнять  smile

Это сообщение отредактировал(а) Evghenusi - 8.6.2011, 10:32
PM WWW   Вверх
fidres
Дата 9.6.2011, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



Цитата(нуп @ 8.6.2011,  08:39)
А если юзер вставил строку с запрещенными символами?

а если использовать ELSE в CASE?

Цитата(Evghenusi)
или одно строчная регулярка....
а проверка вводимого в регулярку - проще?
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1285 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.