Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在vanilla js中自动获取输入值?_Javascript_Addeventlistener - Fatal编程技术网

Javascript 如何在vanilla js中自动获取输入值?

Javascript 如何在vanilla js中自动获取输入值?,javascript,addeventlistener,Javascript,Addeventlistener,有没有javascript方法可以自动获取输入文本的值?我使用的是条形码扫描仪,我想在我的文本字段得到一个值时触发一个事件,否则什么也不做。现在我正在使用的更改事件如下: if(document.getElementById("item")){ document.getElementById("item").addEventListener("change", function(){ let item = document.getElementById("item").v

有没有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);
                    }
                }
            }
        }
    });
}

但问题是用户仍然需要点击键盘上的[strong>Enter

您可以使用
keydown
事件:

const input=document.getElementById('test'))
input.addEventListener(“keydown”,()=>{
console.log(input.value)
});

您可以使用
向下键
事件:

const input=document.getElementById('test'))
input.addEventListener(“keydown”,()=>{
console.log(input.value)
});

根据
MDN
文档:

当input、select或textarea元素的值发生更改时,将触发input事件

您可以按如下方式使用它:

document.querySelector(“input”).addEventListener(“input”,x=>console.log(x.target.value))

根据
MDN
文档:

当input、select或textarea元素的值发生更改时,将触发input事件

您可以按如下方式使用它:

document.querySelector(“input”).addEventListener(“input”,x=>console.log(x.target.value))

我的理解是,条形码扫描仪基本上就像键盘一样,输入扫描的值。因此,您可以收听
按键
事件,但这会在每个字符后触发,因此您需要检测对输入值实际操作的正确时间。我的理解是,条形码扫描仪基本上就像键盘一样,输入扫描的值。因此,您可以监听
按键
事件,但这会在每个字符后触发,因此您需要检测对输入值实际操作的正确时间。