Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 带有JQuery事件的条形码阅读器_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 带有JQuery事件的条形码阅读器

Javascript 带有JQuery事件的条形码阅读器,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我正在使用asp.net客户端页面,其中有一个文本框 <asp:TextBox class="form-control " autocomplete="off" ID="txtScan" runat="server"></asp:TextBox> 我希望在条形码阅读器完全读取完输入值后获得输入值。因此,我想使用ajax执行一些服务器端操作。这应该在不失去输入焦点的情况下完成 当我使用aspx textbox OnTextChanged事件时,我实现了这一点。但是现

我正在使用asp.net客户端页面,其中有一个文本框

<asp:TextBox class="form-control " autocomplete="off"   ID="txtScan" runat="server"></asp:TextBox>

我希望在条形码阅读器完全读取完输入值后获得输入值。因此,我想使用ajax执行一些服务器端操作。这应该在不失去输入焦点的情况下完成


当我使用aspx textbox OnTextChanged事件时,我实现了这一点。但是现在我希望使用jquery/javascript来实现这一点,我建议添加一个计时器,并在执行任何操作之前给用户一些时间进行交互,而不是直接触发任何操作

例如,您可以这样做:

var pTimerSelCntr = null;
$(document).ready(function () {
    $('#<%=txtScan.ClientID%>').on('change', function() {
        // clear the time out, so the function is not fired
        if (pTimerSelCntr)
            clearTimeout(pTimerSelCntr);

        // start new time out to fire the function
        //  and give some time to the user to interact again
        //  before you do any action
        pTimerSelCntr = setTimeout(function() { 
            console.log( $('#<%=txtScan.ClientID%>').val())  
        }, 800);      
 });
});
var pTimerSelCntr=null;
$(文档).ready(函数(){
$('#')。on('change',function(){
//清除超时,使函数不被激发
如果(pTimerSelCntr)
清除超时(pTimerSelCntr);
//启动新的超时以启动该功能
//并给用户一些时间再次交互
//在你采取任何行动之前
pTimerSelCntr=setTimeout(函数(){
console.log($('#').val())
}, 800);      
});
});
我面临的问题是,每个角色条目都会触发此更改事件,并且会持续


这是不正常的,可能还需要与您的编辑器进行交互,但使用上述代码,您可能会避免冲突和时间竞赛问题,因为不止一次尝试这样做都会考虑编辑器。

谢谢。但它并没有像预期的那样发挥作用。clearTimeout做什么?它会将pTimerSelCntr设置为null吗?同样,我也不明白为什么更改事件会持续触发,而这只有在我专注于文本时才会起作用box@SachuMine您有一些其他代码干扰您的文本框。clearTimeout用于停止计时器。
var pTimerSelCntr = null;
$(document).ready(function () {
    $('#<%=txtScan.ClientID%>').on('change', function() {
        // clear the time out, so the function is not fired
        if (pTimerSelCntr)
            clearTimeout(pTimerSelCntr);

        // start new time out to fire the function
        //  and give some time to the user to interact again
        //  before you do any action
        pTimerSelCntr = setTimeout(function() { 
            console.log( $('#<%=txtScan.ClientID%>').val())  
        }, 800);      
 });
});