这是我的简单数据
John Smith Individual 010987654
我有三个文本框,上面的数据会自动插入到我网页的第一个文本框中。
我的问题是
如何在文本框中插入数据后立即生成(意味着当文本框的onchange事件被触发时)
答案 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
,请按tab
或enter
,b
和c
将分别显示在其他文本框中。< / 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] || '';
}
}
答案 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();
}
});
答案 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]);
}