如果用户将32个字符粘贴到许可证文本框中,则首先拆分文本框

如果用户将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)     
已邀请:
这是一个起点。它适用于所有主流浏览器。您可能希望扩展它以处理其他三个输入框中的输入。 码:
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: http://jsfiddle.net/DGzCx/6/     
现场演示
$("#license").keyup(function() {
    if ($(this).val().length == 32) {
        var reg = new RegExp("(\w{8})", 'g');
        $(this).val($(this).val().replace(reg, "$1n"));
    }
});
    
嗯,这是一个例子。 它并不完美,但它是一个很好的基础。 http://jsfiddle.net/mazzzzz/nRHM3/4/     

要回复问题请先登录注册