AP2*_*257 5 html javascript browser forms
我有一个与形式有关的问题.我的网络应用程序监听条形码阅读器的扫描仪输入.条形码阅读器按以下格式显示为键盘输入:
~100.0101~\n
Run Code Online (Sandbox Code Playgroud)
\n换行符在哪里.我使用带有正则表达式的全局javascript监听器 - 每当监听器'听到'与正则表达式匹配的输入时,我调用我的barcodeHandler()函数.
不幸的是,这与表单没有很好的交互:如果用户在扫描时专注于表单输入,则表单会在听众启动之前提交并回发,因为表单的\n意思是"提交".
我无法更改扫描仪输入,所以有什么方法可以在\n输入时停止提交表单吗?
显然,我仍然希望我的表单能够使用Enter键,如果可能的话我宁愿不改变默认的表单行为!
非常感谢!
您需要捕获表单控件上的按键,并使用preventDefault()或阻止默认操作return false.
// do this for all <input> <textarea> and <select> elements on the page.
input.addEventListener("keypress", function(event){
if (event.which == '10' || event.which == '13') {
event.preventDefault();
}
}, false);
Run Code Online (Sandbox Code Playgroud)
或使用jQuery:
$("input, textarea, select").keypress(function(event){
if (event.which == '10' || event.which == '13') {
event.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)