[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: С кириллицы в латиницу. Скрипт на JS
m4a1fox
Добрый день уважаемые эксперты. Как-то поднимал тему, о перекодировки с кириллицы в латиницу. Но тогда все решилась обычными массивами на php. Сейчас попродил по просторам интернета, и наткнулся на вот такой скриптик.

<script type="text/javascript">
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};

var ereg = '';

var txt = document.getElementById('text'); //id тега textarea

var txtvar = txt.value;

for (var k in arr)
{
eval('ereg = /'+ k +'/g;');
txtvar = txtvar.replace(ereg, arr[k]);
}

txt.value = txtvar;
}
</script>

Сам в ОЫ не селен. Поэтому рассказываю как знаю. Скрипт принимает латиницу и по функции onblur вот тут

<input type="text" id="text" onblur="translit()" />

переводит ее в латиницу. Но прошу помощи, в том что бы можно было сделать так. 2 поля. В одно вводишь название на кириллице, а во втором по onblur оно уже формируется на латиницу. без перезагрузки страницы. Спасибо все кто поможет!



Спустя 1 час, 50 минут, 13 секунд (7.04.2011 - 15:49) Mirexzpalich написал(а):
<script type="text/javascript">
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};

var ereg = '';

var txt = document.getElementById('text'); //id первого поля, куда вводишь
var txt2 = document.getElementById('text2');//id второго поля, куда выводишь

var txtvar = txt.value;

for (var k in arr)
{
eval('ereg = /'+ k +'/g;');
txtvar = txtvar.replace(ereg, arr[k]);
}

txt2.value = txtvar;
}
</script>

Спустя 1 час, 11 минут, 57 секунд (7.04.2011 - 17:01) m4a1fox написал(а):
Mirexzpalich
Не получается Ваш вариант!

Спустя 19 минут, 16 секунд (7.04.2011 - 17:20) Mirexzpalich написал(а):
А мона посмотреть HTML код, собсна ту часть где находятся эти эл-ты ввода и вывода?

Спустя 1 минута, 56 секунд (7.04.2011 - 17:22) m4a1fox написал(а):
Mirexzpalich
Конечно! нет проблемы

<script type="text/javascript">
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};

var ereg = '';

var txt = document.getElementById('text'); //id первого поля, куда вводишь
var txt2 = document.getElementById('text2');//id второго поля, куда выводишь

var txtvar = txt.value;

for (var k in arr)
{
eval('ereg = /'+ k +'/g;');
txtvar = txtvar.replace(ereg, arr[k]);
}

txt2.value = txtvar;
}
</script>
<
input type="text" id="text"/>
<
input type="text" id="text2" onkeyup="translit()"/>

Спустя 3 минуты, 26 секунд (7.04.2011 - 17:25) Mirexzpalich написал(а):

<input type="text" id="text"/>
<input
type="text" id="text2" onkeyup="translit()"/>


Так событие-то надо вызывать в том input где пишем по-русски

<input type="text" id="text" onkeyup="translit()"/>
<input
type="text" id="text2" />


Тобишь пишешь в text а перевод у тебя будет в text2

Спустя 3 минуты, 3 секунды (7.04.2011 - 17:28) m4a1fox написал(а):
Mirexzpalich
Вот так сделал....

<script type="text/javascript">
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};

var ereg = '';

var txt = document.getElementById('text'); //id первого поля, куда вводишь
var txt2 = document.getElementById('text2');//id второго поля, куда выводишь

var txtvar = txt.value;

for (var k in arr)
{
eval('ereg = /'+ k +'/g;');
txtvar = txtvar.replace(ereg, arr[k]);
}

txt2.value = txtvar;
}
</script>
<
input type="text" id="text" onkeyup="translit()"/>
<
input type="text" id="text2"/>

Тем не менее не работает!

Спустя 2 минуты, 23 секунды (7.04.2011 - 17:31) m4a1fox написал(а):
m4a1fox
Выводит... только то что и пишешь в первом input. То есть сам скрипт не срабатывает.

Спустя 44 секунды (7.04.2011 - 17:31) m4a1fox написал(а):
Mirexzpalich
Да, это весь код страницы.

Спустя 1 минута, 24 секунды (7.04.2011 - 17:33) Mirexzpalich написал(а):
Жжжеешь чувак =)


var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};


там где написано //и так для всех символов
нужно добавлять типа
в:v,
г:g,
......

Понял?

Спустя 3 минуты (7.04.2011 - 17:36) m4a1fox написал(а):
Mirexzpalich
Ну так я проверяю на буквах --а-- и --я--. Один эффект.

Спустя 3 минуты, 53 секунды (7.04.2011 - 17:40) Mirexzpalich написал(а):
кодировка страницы какая?

Спустя 6 минут (7.04.2011 - 17:46) m4a1fox написал(а):
utf8

Спустя 1 минута, 24 секунды (7.04.2011 - 17:47) Mirexzpalich написал(а):
<script type="text/javascript">
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh',
'я':'ya'
//и так для всех символов
};

var ereg = '';

var txt = document.getElementById('text'); //id первого поля, куда вводишь
var txt2 = document.getElementById('text2');//id второго поля, куда выводишь

var txtvar = txt.value;

for (var key in arr)
{
txtvar = txtvar.replace(key, arr[key]);
}

txt2.value = txtvar;
}
</script>
<
input type="text" id="text" onkeyup="translit()"/>
<
input type="text" id="text2"/>

Спустя 8 минут, 51 секунда (7.04.2011 - 17:56) m4a1fox написал(а):
Mirexzpalich
Опять тоже самое... то что вводишь в первое поле (в моем случае это буквы --а-- и --я--), то во втором поле - эти же буквы и выводятся.

Спустя 2 минуты, 24 секунды (7.04.2011 - 17:58) Mirexzpalich написал(а):
попробуй в cp1251

Спустя 9 минут, 45 секунд (7.04.2011 - 18:08) m4a1fox написал(а):
Mirexzpalich
Да, спасибо. Заработало. Я изначально ошибся. Мета таг с кодировкой забал поставить, вот все и в cp1251 выдавал, а я был уверен, что там utf8. Но теперь разобрался. Спасибо еще раз.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.