Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Функция возвращает то заглавную, то не заглавную букву (https://javascript.ru/forum/jquery/69643-funkciya-vozvrashhaet-zaglavnuyu-ne-zaglavnuyu-bukvu.html)

prog77 08.07.2017 17:49

Функция возвращает то заглавную, то не заглавную букву
 
Добрый день есть функция которая возвращает более структурированные текст вот пример https://jsfiddle.net/k8mm9bo6/9/. Но проблема в том что она то возвращает заглавную букву, то обычную. смысл в чем жму input потом текст выделяю и в input заносятся данные но с большой буквы, а когда второй раз выделяешь уже все с маленькой как и должно быть, как сделать что бы всегда с маленькой начиналось, где ошибка. Спасибо

j0hnik 08.07.2017 20:12

https://jsfiddle.net/k8mm9bo6/10/
Убрал toUpperCase

prog77 08.07.2017 21:05

Спасибо

prog77 27.07.2017 09:46

j0hnik,
но после этого перестала работать заглавная буква после знаков препинания! .
https://jsfiddle.net/k8mm9bo6/13/

Белый шум 27.07.2017 10:29

prog77,
В первый раз в ф-ю getTrueText(txt) параметр попадает с пробелом в начале, соответственно и txtw[0] - это пустая строка. Поэтому для реально первого слова условие "i != 0" ложно.

prog77 27.07.2017 11:07

Белый шум,
не понял вас я хотел сделать так
if(i==0){
                txtw[i] = txtw[i][0].toLowerCase() + txtw[i].substr(1).toLowerCase();
            }
первое слово обязательно с прописной, но все равно начинается с заглавной

Белый шум 27.07.2017 11:23

если txtw[0] == пустая строка, то ваши действия в if(i==0) не имеют смысла.

после строки: txtw = txt.split(' ');
добавьте строку: console.log('txtw:', txtw);
и посмотрите в консоли что происходит при выделении текста...

Белый шум 27.07.2017 11:25

А вот тут у вас и добавляется лишний пробел в начале (из-за которого массив и начинается с пустой строки):
inputFocused.val(getTrueText(inputFocused.val() + " " + getSelectedText()));

prog77 27.07.2017 12:17

спасибо


Часовой пояс GMT +3, время: 22:16.