【问题标题】:Avoid auto submit form after scanning thru barcode scanner通过条形码扫描仪扫描后避免自动提交表单
【发布时间】:2015-11-01 08:19:51
【问题描述】:

HTML

<form action="die_issue_process.php" id="form" method="post" autocomplete="off">
<input type="text" name="item_name[]"  />
<input type="button" name="add_item" value="Add More" onClick="addMore();" />
<input type="submit" id="Search" name="Search" value="Search" />

Javascript 代码:

function addMore() {
$("<DIV>").load("input.php", function() {
$("#product").append($(this).html());
}); 
}

这种形式的朋友我有一个单独的文本框和添加按钮根据需要添加文本框。在此表单中,我通过条形码阅读器进行输入,因此一旦扫描了条形码,表单就会自动提交,但我的要求是只有在给出提交按钮后才能提交

注意:我的表单会在第一次扫描输入框时自动提交。

【问题讨论】:

  • 您扫描的代码末尾是否包含换行符?可能是条形码扫描仪正在“按回车键”
  • 我必须同意@MikeWu。我曾经使用条形码扫描仪,他们经常在末尾添加换行符或回车符,其解释方式与按下键盘上的 Enter 按钮相同。然而,这可能只是您可以更改的扫描仪设置。你用的是什么条码扫描器?

标签: javascript php jquery html


【解决方案1】:

好吧,一个条形码扫描仪,读取条形码并自动提交! 因此,我认为您最好将“提交”类型的输入更改为 按钮

<input type="button" id="Search" name="Search" value="Search" />

【讨论】:

    【解决方案2】:

    您可以将条形码扫描仪视为一种非常专业的键盘。如果您在文本编辑器中测试条形码扫描仪。您会看到他们很快就输入了条形码所代表的字符串,后跟回车。

    这些与使用键盘手动执行相同操作所需的击键没有区别。

    如果您专注于表单中的文本字段,通常按 Enter 键会提交表单。

    要防止输入键在文本字段上提交表单,您可以使用事件处理程序终止该键击,例如:

    (function() {
        var textField = document.getElementById('textFieldId');
    
        if(textField) {
            textField.addEventListener('keydown', function(mozEvent) {
                var event = window.event || mozEvent;
                if(event.keyCode === 13) {
                    event.preventDefault();
                }
            });
        }
    })();
    

    【讨论】:

      【解决方案3】:

      如果扫描仪正在输入文本框,请在隐藏提交按钮的情况下启动表单。只有在文本框有数据输入时才可见。这可以通过javascript来完成。。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-18
        • 1970-01-01
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        • 2020-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多