我见过 html 表单,其中光标会自动从一个输入字段移动到另一个输入字段。当您需要粘贴跨越多个输入字段的序列号,或者键入或粘贴在多个字段输入中采用的银行帐号时,它很有用,例如:
<td style="width: 50%;"><label for="bank_ac"><input class="textline" style="width: 35px;" type="text" name="bank_ac_1" maxlength="2" onkeydown="validateNumber(event);" aria-required="true" required>
<input class="textline" style="width: 55px;" type="text" name="bank_ac_2" maxlength="4" onkeydown="validateNumber(event);" aria-required="true" required>
<input class="textline" style="width: 75px;" type="text" name="bank_ac_3" maxlength="7" onkeydown="validateNumber(event);" aria-required="true" required>
<input class="textline" style="width: 45px;" type="text" name="bank_ac_4" maxlength="3" onkeydown="validateNumber(event);" aria-required="true" required></label></td>
是否有一些简单的方法可以使光标从一个输入字段传递到下一个输入字段,以便一次粘贴中跨所有四个字段粘贴?如果可能的话,我宁愿不必更改/更改任何 CSS。validateNumber 函数使用嵌入在页眉中的这个脚本:
function validateNumber(evt){
var e = evt || window.event;
var key = e.keyCode || e.which;
if (!e.shiftKey && !e.altKey && !e.ctrlKey &&
// numbers
key >= 48 && key <= 57 ||
// Numeric keypad
key >= 96 && key <= 105 ||
// Backspace and Tab and Enter
key == 8 || key == 9 || key == 13 ||
// Home and End
key == 35 || key == 36 ||
// left and right arrows
key == 37 || key == 39 ||
// Del and Ins
key == 45 || key == 46 ||
// Dot (Decimal point)
key == 190){
// input is VALID
} else {
// input is INVALID
e.returnValue = false;
if (e.preventDefault) e.preventDefault();
}
}
重要提示:用户可能会以如下格式将内容粘贴到这些字段中:12-1234-1234567-123 我显然想收集每个字段中的数字,同时忽略“-”或任何其他字符,如空格等。
提前致谢!