扫描数据到mvc web应用程序,然后改变焦点
Scanning data into mvc web application then changing focus
我正在编写一个小数据库,在那里我可以扫描多个条形码到不同的文本框,然后保存数据。条形码数据可以在长度上有一些差异,我想在条形码完成扫描后将焦点移动到下一个文本框。
这是我视图中最新的代码,我给每个文本框一个id,然后我使用jquery在第一个文本框达到一定长度后关注下一个id。
<!--This is for entering the PartNumber-->
<div class="form-group">
@Html.LabelFor(model => model.PartNum,
htmlAttributes: new { @class = "control-label col-md-2" })
@Html.TextBoxFor(model => model.PartNum,
new { htmlAttributes = new { @class = "form-control", id="focus1"} })
@Html.ValidationMessageFor(model => model.PartNum, "",
new { @class = "text-danger" })
</div>
<!--This is for entering the Aisle-->
<div class="form-group">
@Html.LabelFor(model => model.Aisle,
htmlAttributes: new { @class = "control-label col-md-2" })
@Html.TextBoxFor(model => model.Aisle,
new { htmlAttributes = new { @class = "form-control",id="focus2" } })
@Html.ValidationMessageFor(model => model.Aisle, "", new { @class = "text-danger" })
</div>
这是我的jquery代码
$('input[id=focus').keyup(function () {
if (this.value.length == 2) {
$('input[id=focus2]').focus();
}
});
从我从代码中可以看出,这应该在第一个文本框输入/扫描2个字符后将焦点移动到下一个文本框,但这不起作用。
我想在扫描可变长度的条形码后改变焦点,但不确定如何做到这一点。
我在代码中做错了什么,不会让焦点更改到下一个文本框?
更新:
您可以尝试以下操作:
$('input[id*="focus"]').each(function () {
if($(this).val().length >= 2) {
$(this).next().focus();
}
});
我不确定你的结构,但jQuery是相当直接的。遍历包含单词focus
的每个元素,如果值大于2,则将焦点移动到下一个元素。(可能需要调整next以击中合适的元素)
这也会有一些开销,因为每次迭代都会发生一个循环。
我不确定keyup
事件是否会被触发。同时,你要确保它等于2,而不是等于或大于2。您可以这样做:
$('input[id=focus]).change(function (event) {
event.preventDefault();
if($(this).val().length >= 2) {
$('input[id=focus2]').focus();
}
});
您可能还想缩放此代码,其中它会自动增加到下一个可用的id
焦点
我发现我遇到的主要问题是我忘记包含$(function(){
在我代码的开头。接下来是我能想出的主要解决方案。
$(function(){
$('#focus1').keyup(function(){
if(!_timeoutRunning){
_timeoutRunning=true;
setTimeout(function(){checkKey();}, 2000);
}
});
});
var _timeoutRunning = false;
function checkKey(){
_timeoutRunning = false;
if($('#focus1').val().length >= 7)
$('#focus2').focus();
}
这个代码允许我扫描长度为7或更多的条形码,然后在扫描第7个字符后2秒它会将焦点更改为下一个id
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- Javascript运行php文件,然后下载文件
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- "改变“;列表头,然后继续处理列表
- 悬停在元素上改变元素,然后在悬停中包含该元素
- 外部变量不能在Promise内部改变.然后函数
- 你如何链承诺,但改变类型从一个然后到另一个
- 设置Javascript类的对象,然后改变它以某种方式改变所有实例的对象
- 在缩略图上更改滑块图像.图像改变一秒钟,然后恢复
- 改变循环中元素的背景,然后改变悬停的颜色
- 我如何使文本改变其他图像,然后用户鼠标悬停文本
- JQuery元素点击函数IF(对于每个css_attribute = value)然后改变css值
- jQuery在悬停时改变图像,然后在单击时保持图像
- Asp:RadioButtonList SelectedIndex不改变时,设置javascript,然后按钮被禁用
- 放大网页,然后点击后退按钮改变前一页的背景大小
- 扫描数据到mvc web应用程序,然后改变焦点
- 重新加载页面一次,然后再重新加载,不改变内容
- 检查互联网连接,然后改变图像在网页中的JQuery/Javascript/Ajax
- 改变位置.然后按后退按钮- IE的行为不同于其他浏览器