Как автоматически получить входное значение в vanilla js? - PullRequest
0 голосов
/ 03 ноября 2019

Есть ли какой-нибудь метод javascript для автоматического получения значения входного текста? Я использую сканер штрих-кода, и я хочу вызвать событие, когда мое текстовое поле получает значение, в противном случае ничего не делать. На данный момент я использую, изменить событие, как это:

if(document.getElementById("item")){
    document.getElementById("item").addEventListener("change", function(){
        let item = document.getElementById("item").value;
        if(item){
            var httpRequest = new XMLHttpRequest();
            httpRequest.open('GET', "http://"+window.location.hostname+":"+window.location.port+"/api/employee/search/1/"+item);
            httpRequest.send();
            httpRequest.onreadystatechange = function() {
                if(this.readyState == 4 && this.status == 200){
                    var employee = JSON.parse(httpRequest.responseText);
                    if(typeof(employee.id) !== 'undefined'){
                        console.log(employee)
                        urlRequest = "http://"+window.location.hostname+":"+window.location.port+"/employee/"+employee.id;
                        location.replace(urlRequest);
                    }
                }
            }
        }
    });
}

, но проблема в том, что пользователю все еще нужно нажать Enter на клавиатуре.

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

В соответствии с документом MDN:

Событие input срабатывает, когда значение элемента input, select или textarea было изменено.

Вы можете использовать его следующим образом:

document.querySelector("#input").addEventListener("input", x => console.log(x.target.value))
<input id='input' type='text' />
1 голос
/ 03 ноября 2019

Вы можете использовать keydown событие:

const input = document.getElementById('test')

input.addEventListener("keydown", () => {  
 console.log(input.value)
});
<input id='test' type='text' />
...