我正在使用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 ,因为我的扫描仪在完成输入之前发送了一个确认。
第二部分是防止返回初始页面。
答案 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>