Перейти к содержимому


Авторедактирование текстовых полей JS


Сообщений в теме: 4

#1 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 07 Март 2014 - 20:56

Хочется сделать "защиту от дурака" при работе менеджеров с заполнением текстовых полей
Можно ли как то реализовать такую функцию:

При вводе в поле фамилия проверять
(по выходу из поля / по введению пробела)

Если введены латинские символы - заменять их на соответствующие русские,

а русские в свою очередь делать первую буку большую, остальные маленькие

Реализовывал давным давно подобное на фокспро через массивы всех букв и простым перебором каждого введеного символа.
а вот с Js у меня туго.
Наверняка кто-то реализовывал подобное .

Простой контроль ввода по форматированию я разумеется сделал и пользователь не может ввести не то что нужно, но это как вы понимаете немного не то. Хотелось бы автоматизации.
Заранее спасибо

#2 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 12 Март 2014 - 12:55

Собственно , правдами неправдами родил следующий код:

function onchange_{$one_field.id}()
{
finde = document.getElementById('value2670').value;

var abc1="йцукенгшщзхъфывапролджэячсмитьбюё'qwertyuiop[]asdfghjkl;'zxcvbnm,.`QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,.`ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ'"
var abc2="йцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзхъфывапролджэячсмитьбюё"
var fff="" 
var i = 0;
while (i<finde.length)
 {
 c=(abc2.charAt(abc1.indexOf(finde.charAt(i))-1));

fff=fff+c;

 i++;
}
alert(fff);
}

addHandler(document.getElementById('value2670'), 'onchange', onchange_{$one_field.id});


Вопрос в следующем,
в переменной fff - то что мне сейчас нужно подставить в строку, которую я собственно и редактирую, после ухода на след строку
Вопрос как это сделать?
Кодеры помогите :)

Сообщение отредактировал ManFree: 12 Март 2014 - 13:40


#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Март 2014 - 14:26

document.getElementById('value2670').value = fff;

Не это?

#4 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 12 Март 2014 - 17:05

Вы гений ))) а я не знаю JS
Вот выкладываю полный код функции вдруг кому пригодится

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

Согласен код далеко не оптимален но работает. :) (первая попытка)
function onchange_{$one_field.id}()
{
finde = document.getElementById('value2670').value;
var abc1="йцукенгшщзхъфывапролджэячсмитьбюёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁQWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,.`qwertyuiopasdfghjklzxcvbnm"
var abc2="йцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзхъфывапролджэячсмитьбюёйцукенгшщзфывапролдячсмить"
var fff=""
var i = 0;
while (i<finde.length)
{
c=(abc2.charAt(abc1.indexOf(finde.charAt(i))));
fff=fff+c;
i++;
}
finde = fff;
i=0;
abc1="йцукенгшщзхъфывапролджэячсмитьбюё";
abc2="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ";
var f1 = (abc2.charAt(abc1.indexOf(finde.charAt(0))));
var f2 = finde.substr(1,finde.lenght);
fff= f1 + f2;


if (fff!="Й")
{
document.getElementById('value2670').value = fff;
}
else
{
document.getElementById('value2670').value = "";
}

}
addHandler(document.getElementById('value2670'), 'onchange', onchange_{$one_field.id});

Сообщение отредактировал ManFree: 13 Март 2014 - 17:59


#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Март 2014 - 18:15

Цитата

Вы гений ))) а я не знаю JS

Да ладно вам, это же итак очевидно, исходя из вашего же кода, в частности первой же строки функции. Просто вы не сообразили сами, бывает.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных