【问题标题】:Removing trailing letter from textarea JS Function从 textarea JS 函数中删除尾随字母
【发布时间】:2018-11-05 15:35:24
【问题描述】:

我使用 Yandex API 创建了一个 SPA 翻译应用程序。我刚刚完成了我的应用程序的逻辑和功能,但是当用户从输入文本区域中删除所有文本时,我被困在如何删除我的输出文本区域中的尾随字母。

在用户删除所有输入文本后,如何编写一个函数将输出文本区域清除回 ('') 空白字符串。我的实时网站的链接在这里 (https://translex-app-shanemuir.c9users.io/dist/index.html)。

这里有一个 HTML 表单:

            <div class="container myForm text-center">
                <div class="row row-center">
                    <div class="col-sm-12">
                        <form class="form-inline well justify-content-center">
                            <textarea id="inputText" class="form-control" placeholder="Enter a Word..."></textarea>
                            <select class="form-control" id="selectLang">
                             <option selected>Choose Language...</option>
                            </select>
                        </form>
                    </div>
                </div>
                <div class="row">
                    <div class="col-sm-12">
                        <h2 class="translation-header">Translation</h2>
                        <form class="form-inline well justify-content-center">
                            <textarea readonly class="form-control" placeholder="Translation" id="translation"></textarea>
                        </form>
                    </div>
                </div>
            </div>

这里我有一些 JS:

let searchInput = document.querySelector('#inputText');
let select = document.querySelector('#selectLang');
let textArea = document.querySelector('#translation');
let selectedLang = 'es';

function getLanguages(){
    axios.get('https://translate.yandex.net/api/v1.5/tr.json/getLangs?key=trnsl.1.1.20180914T205319Z.b0ffef87e97badd3.e78787ec8a392b9772f8b8f56933b1d86463d330&ui=en')
    .then((response) => {
        let languages = response.data.langs;
        let languageCode = {
            name:'',
            code:''
        };
        for(language in languages) {
            languageCode.name = languages[language];
            languageCode.code = language;
            let option = document.createElement('option');
            option.innerHTML = languageCode.name;
            option.value = languageCode.code;
            select.appendChild(option);
        }
    })
    .catch((err) => {
        console.log(err);
    });
}

function translateText(textArg){
    let searchText;
    if(textArg == ''){
        searchText = document.querySelector('#inputText').value;
    }
    else{
        searchText = textArg;
    }

    if(searchText != ''){
        axios.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20180914T205319Z.b0ffef87e97badd3.e78787ec8a392b9772f8b8f56933b1d86463d330&lang=' + selectedLang + '&text=' + searchText)
        .then((response) => {
            let translateInput = document.querySelector('#translation');
            translateInput.value = response.data.text[0];
        })
        .catch((err) => {
            console.log(err);
        });
    }
}


searchInput.addEventListener('keyup',() => {
    translateText('');
});

select.addEventListener('change',() => {
    selectedLang = select.options[select.selectedIndex].value;
    translateText('');
});


getLanguages();

【问题讨论】:

  • 你可能想看看 string.trim()
  • function translateText(textArg){ let searchText; if(textArg.trim() == ''){ searchText = document.querySelector('#inputText').value; }
  • 感谢您的快速响应,这是一个留在输出文本区域中的尾随字母,而不是空格,string.trim() 是否仍然如此?对于我的问题。编辑:我刚刚尝试了您上面的评论,但它仍然在输出文本区域中留下一个尾随字母:/
  • 什么是尾随字母?

标签: javascript html string dom textarea


【解决方案1】:

在if 中添加else 子句,以清空文本区域。

if(searchText != ''){
    axios.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20180914T205319Z.b0ffef87e97badd3.e78787ec8a392b9772f8b8f56933b1d86463d330&lang=' + selectedLang + '&text=' + searchText)
    .then((response) => {
        let translateInput = document.querySelector('#translation');
        translateInput.value = response.data.text[0];
    })
    .catch((err) => {
        console.log(err);
    });
} else {
    document.querySelector('#translation').value = '';
}

【讨论】:

  • 这就是要走的路!
  • 谢谢大家,我爱编程的人花了几个小时试图解决这个问题!祝大家好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多