如何在javascript中调用tab键事件

时间:2013-05-06 04:20:31

标签: javascript forms

这是我的简单数据

  

John Smith Individual 010987654

我有三个文本框,上面的数据会自动插入到我网页的第一个文本框中。

我的问题是

如何在文本框中插入数据后立即生成(意味着当文本框的onchange事件被触发时)

  1. 首先,javascript会在此字符串中找到'tab'空格
  2. 其次,如果在字符串中找到'tab'空格,javascript将按'tab'键并在另一个文本框中插入数据。

4 个答案:

答案 0 :(得分:1)

我以为你想把这些文本拆分成不同的文本框,所以我得到了类似的东西:

$("#a").change(function(){
    var s = $(this).val();
    if (s.match(/\t+/)) {
        var a = s.split(/\t+/);
        $('#a').val(a[0]);
        $('#b').val(a[1]);
        $('#c').val(a[2]);
    }
});

如果您在第一个输入框中输入a b c,请按tabenterbc将分别显示在其他文本框中。< / p>

我在jsfiddle中使用\s(空格)进行测试。您可以将其更改为\t标签。

答案 1 :(得分:1)

这是一个简单的DOM-0 JavaScript解决方案,只是为了好玩。

document.getElementById('the_form').onchange = function() {
    var field = this[0];
    var parts = field.value.split('\t');
    for (var i = 0; field = this[i]; i++) {
        field.value = parts[i] || '';
    }
}

http://jsfiddle.net/vKaxP/

答案 2 :(得分:0)

这是您需要做的原型。

HTML:

<div>
    <input id="a" />
</div>
<div>
    <input id="b" />
</div>

JavaScript的:

$('#a').on('change', function () {
    var value = $(this).val();
    // Test if string has a tab:
    if (/\t/.test(value)) {
        // Just set the value of the other text box
        // And set focus:
        // Using jQuery that would be:
        $('#b').val(value).focus();
    }
});

工作演示:http://jsfiddle.net/tkirda/XmArP/

答案 3 :(得分:0)

如果我正确地将问题理解为“服务器将所有数据放入一个字段,选项卡分隔,并且我想将其拆分为多个文本字段”,请尝试以下操作:

载入时:

var fields = [$("#firstField"), $("#secondField"), $("#thirdField")];
var data = fields[0].val().split(/\t/);

for (var i = 0; i < 3; i++) {
    fields[i].val(data[i]);
}