如果用户将32个字符粘贴到许可证文本框第一个拆分文本框中,该方法将在4个文本框中分别放置8个字符
见 我有4个文本框...最大长度(8)
<input type = "text" size = "8" maxlength="32" name = "LicenseNumber1"
id="LicenseNumber1">
<input type = "text" size = "8" maxlength="32" name = "LicenseNumber2"
id="LicenseNumber2">
<input type = "text" size = "8" maxlength="32" name = "LicenseNumber3"
id="LicenseNumber3">
<input type = "text" size = "8" maxlength="32" name = "LicenseNumber4"
id="LicenseNumber4">
&安培;我的许可证是32个字符,如06e1823681f48e2f013904403b33ff08 现在,如果我在我的第一个测试框中粘贴整个32个字符,即LicenseNumber1,那么我
希望其他三个文本框自动填充bcause(8 * 4 = 32)
答案 0 :(得分:0)
<强> Live Demo 强>
$("#license").keyup(function() {
if ($(this).val().length == 32) {
var reg = new RegExp("(\\w{8})", 'g');
$(this).val($(this).val().replace(reg, "$1\n"));
}
});
答案 1 :(得分:0)
嗯,这是一个例子 它并不完美,但它是一个很好的基础 http://jsfiddle.net/mazzzzz/nRHM3/4/
答案 2 :(得分:0)
这是一个起点。它适用于所有主流浏览器。您可能希望扩展它以处理其他三个输入框中的输入。
代码:
var inputs = [
document.getElementById("LicenseNumber1"),
document.getElementById("LicenseNumber2"),
document.getElementById("LicenseNumber3"),
document.getElementById("LicenseNumber4")
];
function handleInput(input) {
var allText = input.value, inputToFocus = input;
for (var i = 0, len = inputs.length; i < len; ++i) {
if (allText.length > 0) {
inputs[i].value = allText.slice(0, 8);
inputToFocus = inputs[i];
allText = allText.slice(8);
}
}
window.setTimeout(function() {
inputToFocus.focus();
}, 1);
}
// IE 9 and non-IE
inputs[0].oninput = function() {
handleInput(this);
};
// IE <= 8
var handlingValueChange = false;
inputs[0].onpropertychange = function() {
if (window.event.propertyName == "value" && !handlingValueChange) {
handlingValueChange = true;
handleInput(this);
handlingValueChange = false;
}
};
的jsfiddle: