按下输入键时如何防止重新加载?

时间:2018-02-15 13:29:15

标签: javascript asp.net

我正在使用ASP.NET + C#+ Javascript开发应用程序,并且我使用条形码扫描器来读取标签中的条形码。

此扫描仪有一个自动"输入"完成阅读后,但在我的应用程序中,每次按回车键,页面重新加载并返回主视图。

我有一个禁用输入键的功能,但我需要在特定页面中使用,例如触发器,当扫描仪完成或按下回车时,调用Button_Click事件。

这是我禁用回车键的功能:

<%--Script Disable Key Enter--%>
<script type="text/javascript">
    $(document).ready(function () {
        $('input').keypress(function (e) {
            var code = null;
            code = (e.keyCode ? e.keyCode : e.which);
            return (code == 13) ? false : true;
        });
    });
</script>
<%--end function--%>

请记住,我使用扫描仪阅读条形码,阅读后,按“&#34;输入密钥,我需要使用此事件&#34;按&#34;调用另一个函数,一个Button_Click。

有可能重复,但另一个问题不能解决我的问题。 尝试使用此代码后:

<script type="text/javascript">
    $(function () {
        $("#<%=SSCC_barcodeReader.ClientID%>").keypress(function () {
            $("#<%=BarCodeReader.ClientID%>").click();
        });
    });
</script>
<script type="text/javascript">
    $(document).on("keypress", 'form', function (e) {
        var code = e.keyCode || e.which;
        if (code == 13) {
            e.preventDefault();
            return false;
        }
    });
</script>

按下键盘上的任意键后,页面仍然会提交。 然后,我为我的问题开发了一个解决方案太简单了。

<script type="text/javascript">
    $(function () {
        $("#<%=SSCC_barcodeReader.ClientID%>").keypress(function (e) {
            var code = e.keyCode || e.which;
            if (code == 13) {
                setTimeout(function () {
                    $("#<%=BarCodeReader.ClientID%>").click();
                }, 500)
                clearTimeout(setTimeout);
            }
        })
    });
</script>

<script type="text/javascript">
    $(document).on("keypress", 'form', function (e) {
        var code = e.keyCode || e.which;
        if (code == 13) {
            e.preventDefault();
            return false;
        }
    });
</script>

第一部分我在TextBox中获得了按键事件,然后我验证按下的键是否为ENTER并在500毫秒后执行 .click ,因为我的扫描仪在完成输入之前发送了一个确认。

第二部分是防止返回初始页面。

1 个答案:

答案 0 :(得分:0)

我用两个函数解决了我的问题。 现在我的应用程序非常有用。

<script type="text/javascript">
    $(function () {
        $("#<%=SSCC_barcodeReader.ClientID%>").keypress(function () {
            $("#<%=BarCodeReader.ClientID%>").click();
        });
    });
</script>
<script type="text/javascript">
    $(document).on("keypress", 'form', function (e) {
        var code = e.keyCode || e.which;
        if (code == 13) {
            e.preventDefault();
            return false;
        }
    });
</script>