Показать сообщение отдельно
  #1 (permalink)  
Старый 23.01.2020, 11:22
Новичок на форуме
Отправить личное сообщение для Dmitrij_Kh Посмотреть профиль Найти все сообщения от Dmitrij_Kh
 
Регистрация: 23.01.2020
Сообщений: 3

Настройка транскрипта в форме, при нажатии на чекбокс, не отключается.
Здравсвуйте, есть вопрос. Нужно сделать транкрипцию в поле формы, автоматом меняются буквы с кирилицы на латиницу. При нажатии на чекбокс (отключить транскрипцию), отключаем, и обратно. Транслитерация работает, не разберусь как прописать чекбокс. Такой код:

<label for="trChek" id ="translit_no">Отменить транслитерацию</label>
<input id="trChek" type="checkbox" onchange="checkboxTr()">
<input type="text" id="translit">
let input = document.getElementById('translit');

//Функция производящая транскрипцию, вызываем позже через чекбокс.
// input.addEventListener('input', function() {
// this.value = textTransform(this.value);
// });

const trim = string => {
//Удаляем пробел вначале строки и ненужные символы
string = string.replace(/(^\s+)|'|"|<|>|\!|\||@|#|$|%|^|\^|\$|\\|\/|&|\*|\(\)|\|\/|;|\+|№|,|\?|:|{|}|\[|\]/g, "");
return string;
};

const textTransform = text => {
let arrru = [ 'Я','я','Ю','ю','Ч','ч','Ш','ш','Щ','щ', 'Ж','ж','А','а','Б','б','В','в','Г','г', 'Д','д','Е','е','Ё','ё','З','з','И','и', 'Й','й','К','к','Л','л','М','м','Н','н', 'О','о','П','п','Р','р','С','с','Т','т', 'У','у','Ф','ф','Х','х','Ц','ц','Ы','ы', 'Ь','ь','Ъ','ъ','Э','э', ' ' ];
let arren = [ 'Ya','ya','Yu','yu','Ch','ch','Sh','sh','Sh','sh', 'Zh','zh','A','a','B','b','V','v','G','g','D','d', 'E','e','YO','yo','Z','z','I','i','J','j','K','k', 'L','l','M','m','N','n', 'O','o','P','p','R','r','S','s','T','t','U','u','F ','f','H','h','C','c','Y','y','','','','','E', 'e', '' ];

for(let i=0; i<arrru.length; i++){
let reg = new RegExp(arrru[i], "g");
text = text.replace(reg, arren[i]);
}
return text = trim(text).toUpperCase();
};

// Проверка чекбокса на нажатие
let checkbox;
checkbox = document.getElementById('trChek');

function checkboxTr() {
if (!checkbox.checked) {
input.addEventListener('input', function() {
this.value = textTransform(this.value);
});
console.log('транслит включен');
} else {

console.log('Транслит отменен');
}
};
Ответить с цитированием