忽略“输入”键并在文本输入中的5个字符后移动焦点

时间:2012-05-18 18:21:06

标签: javascript jquery html

我的客户需要扫描包含发票编号(5位数)和“输入”按键的条形码。

我需要输入框忽略'enter'键并将焦点移动到5个字符后的下一个输入框。

如果您可以包含一些示例代码,我将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:2)

使用文本框的onkeypress或onkeyup并添加代码if(event.keyCode == 13)return false; (13是回车键)并将焦点设置为下一个控件

例如,您有2个文本框(TxtBox1和TxtBox2)

 <input id="TxtBox1" type="submit" onkeypress="if(event.keyCode==13)return false;document.getElementById('TxtBox2').focus(); " name="Submit" value="Send" />

答案 1 :(得分:1)

$('input[type=text]').on('keyup', function(e) {
    if (e.which != 27 || e.which != 8) { // check for backspace and delete
        if (e.which != 13) { // ignoring enter
            if (!this.value.replace(/\s/g, '').match(/\d/g)) { // checking for digit
                alert('Insert Digit');
                $(this).val(''); // make the field empty
            } else {
                if (this.value.length > 4) {
                    $(this).next().focus(); // automatically change current input of length 5 digits
                }
            }
        }

    }
});

<强> DEMO

答案 2 :(得分:0)

一些JQuery:

$('#test').keydown(function(e) {
if (e.which == 13) {
    if ($(this).val().length == 5) {
        e.preventDefault();
        $('#test2').focus();
    }
}
});

假设'test'和'test2'是2个文本框的id

答案 3 :(得分:0)

不要忽略输入键,而是将其用作提示来移动事物。有点像:

$("#myTextbox").keydown(function(event){
  if(event.keyCode == 13){
  // validate input and move on to the next textbox
  }
});