【问题标题】:@Html.TextBoxFor able to take Input from barcode scanner BUT not from keyboard input@Html.TextBoxFor 能够从条形码扫描仪中获取输入,但不能从键盘输入中获取
【发布时间】:2012-10-25 19:19:22
【问题描述】:

如何使@Html.TextBoxFor() 能够接受条形码扫描仪输入但不能接受键盘输入?

谢谢!!

【问题讨论】:

    标签: asp.net asp.net-mvc-3 razor textbox


    【解决方案1】:

    这是不可能的,因为条形码扫描仪所做的只是将条形码翻译成可读的文本。没有办法限制您用于输入文本的输入设备。

            if (TextBox1.Text.Substring(0,2) == "##" && TextBox1.Text.Substring(TextBox1.Text.Length - 2) == "##")
            {
                TextBox1.Text = TextBox1.Text.Substring(2, TextBox1.Text.Length - 4);
                // or TextBox1.Text = TextBox1.Text.Replace("##","");
            }
            else
            {
                TextBox1.Text = "";
            }
    

    【讨论】:

    • 绕过它的一种方法是向条形码添加一些元数据,当它出现时,您可以用它填充文本框
    • 嗯?你会怎么做。谢谢!
    • 用一些unigue字符包装你的条形码,比如'##barcodetextexample##',然后在文本框的OnChanged事件中,如果第一个和最后两个字符不是##,删除文本
    • 如何将我的条码包装为唯一字符?这会是条形码扫描仪本身的某种编程吗?
    • @AntLaC 我不明白,我们在谈论@Html.TextBoxFor(),这意味着 MVC 和用户在客户端扫描。因为用户实际上无法使用服务器端代码。那么你的代码有什么帮助呢?
    【解决方案2】:

    您将使用 JavaScript 限制此客户端并在服务器端验证用户输入。

    【讨论】:

    • 我不确定您的意思,请您澄清一下。谢谢!
    【解决方案3】:

    限制输入是不可能的,您只能订阅窗口对象的keydown事件,累积输入,如果它匹配条形码格式,则将其放入禁用输入。

    一些条码扫描仪还能够将用户定义的字符放在条码的开头和结尾,因此您可以使用这些字符来确定条码范围。

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多