Сообщение # 1 | 11:46:54
Был нужен скрипт автозаполнения кратного вида материала в модуле каталог файлов.
Взял скрипт транслита, удалил лишнее - работает, один нюанс: если участник ставил текст в поле полного вида мышкой, то поле автоматом не заполняется, ибо срабатывание идёт при вводе с клавиатуры (нужно хоть пробел в конце добавить).
Вопрос: как сделать так, чтобы скрипт работал не только при вводе с клавы, но и при нажатии на "сохранить"?
Ну и может его можно упросить как-то, чтоб был не таким корявым. В скрипте ограничение на 500 символов.

Код
<script>
function translit(){
// Символ, на который будут заменяться все спецсимволы
var space = '_';
// Берем значение из нужного поля
var text = $('#message').val();

// Массив для транслитерации
var transl = {
}

var result = '';
var curent_sim = '';

for(i=0; i < text.length; i++) {
if (i==500) {break;}
// Если символ найден в массиве то меняем его
if(transl[text[i]] != undefined) {
if(curent_sim != transl[text[i]] || curent_sim != space){
result += transl[text[i]];
curent_sim = transl[text[i]];
}
}
// Если нет, то оставляем так как есть
else {
result += text[i];
curent_sim = text[i];
}
}

result = TrimStr(result);

// Выводим результат
$('#brief').val(result);

}
function TrimStr(s) {
s = s.replace(/^_/, '');
return s.replace(/-$/, '');
}
// Выполняем транслитерацию при вводе текста в поле
$(function(){
$('#message').keyup(function(){
translit();
return false;
});
});
</script>

Добавлено (23 Ноя 2016, 11:46:54)
---------------------------------------------
Вроде решил, вот так:

Код
$(function(){
$('#ldF18').click(function(){
translit();
return false;
});
});
Сообщение отредактировал zarim - Понедельник, 21 Ноя 2016, 16:58:08