【发布时间】:2012-10-25 19:19:22
【问题描述】:
如何使@Html.TextBoxFor() 能够接受条形码扫描仪输入但不能接受键盘输入?
谢谢!!
【问题讨论】:
标签: asp.net asp.net-mvc-3 razor textbox
如何使@Html.TextBoxFor() 能够接受条形码扫描仪输入但不能接受键盘输入?
谢谢!!
【问题讨论】:
标签: asp.net asp.net-mvc-3 razor textbox
这是不可能的,因为条形码扫描仪所做的只是将条形码翻译成可读的文本。没有办法限制您用于输入文本的输入设备。
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 = "";
}
【讨论】:
@Html.TextBoxFor(),这意味着 MVC 和用户在客户端扫描。因为用户实际上无法使用服务器端代码。那么你的代码有什么帮助呢?
您将使用 JavaScript 限制此客户端并在服务器端验证用户输入。
【讨论】:
限制输入是不可能的,您只能订阅窗口对象的keydown事件,累积输入,如果它匹配条形码格式,则将其放入禁用输入。
一些条码扫描仪还能够将用户定义的字符放在条码的开头和结尾,因此您可以使用这些字符来确定条码范围。
【讨论】: