Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果验证函数返回true,则关注下一个元素_Javascript_Jquery_Html_Javascript Events - Fatal编程技术网

Javascript 如果验证函数返回true,则关注下一个元素

Javascript 如果验证函数返回true,则关注下一个元素,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,我有多个输入,允许一个数字值。下面的脚本确认该值为数字 输入有效数字后,如何将焦点移到下一个输入 <input type="text" maxlength="1" onkeypress="return isNumber(event)" required> 函数isNumber(evt){ evt=(evt)?evt:window.event; var charCode=(evt.which)?evt.which:evt.keyCode; 如果(字符码>31&(字符码53)){

我有多个输入,允许一个数字值。下面的脚本确认该值为数字

输入有效数字后,如何将焦点移到下一个输入

<input type="text" maxlength="1" onkeypress="return isNumber(event)" required>

函数isNumber(evt){
evt=(evt)?evt:window.event;
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(字符码>31&(字符码<49 | |字符码>53)){
返回false;
}
返回true;
}

在本例中,我建议您扩展现在被称为
isNumber()
函数的定义。将第二个参数传递给它,如果输入是数字,则给出应该移动到的控件的ID。然后,在该子例程中,取消事件,然后
setFocus
到适当的“下一个控件”。每个
onkeypress
处理程序将调用相同的例程,但具有不同的下一个控件id参数,以便每个控件将我们发送到适当的下一个


我建议您:不要试图模拟按Tab键。

您可以使用找到下一个元素,然后使用指定焦点

要使其迭代到下一行,必须检查当前关注的元素是否是当前行中的最后一个元素。如果是,则转到下一行

最好在
元素.onkeydown
属性中使用
Event.preventDefault()
,然后检查元素是否已在
元素中填充。onkeydup
属性作为
keypress
事件在按下键和释放键时都会触发

var-validChar;
var inputs=document.querySelectorAll('td input[type=text]),i;
对于(i=inputs.length-1;i>=0;i--){
输入[i].onkeydown=checkNumber;
输入[i]。onkeyup=checkFilled;
}
功能检查编号(事件){
事件=(事件)?事件:window.event;
var charCode=(event.which)?event.which:event.keyCode;
如果(!(charCode>=48&&charCode=96&&charCode
function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 49 || charCode > 53)) {
        return false;
    }
    return true;
}