Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 关注下一个输入不起作用,以及当用户在最后一个输入字段时如何提交表单_Javascript_Jquery_Ajax_Html - Fatal编程技术网

Javascript 关注下一个输入不起作用,以及当用户在最后一个输入字段时如何提交表单

Javascript 关注下一个输入不起作用,以及当用户在最后一个输入字段时如何提交表单,javascript,jquery,ajax,html,Javascript,Jquery,Ajax,Html,我有6个文本字段,每个字段都有maxlength=1。我使用的脚本,只有用户可以输入数字。输入数字后,光标将转到下一个字段,其他字段也会出现同样的情况,但当光标位于最后一个字段时,我必须调用AJAX来提交数据 我在这里面临两个问题 1) 如何在下一个输入字段上设置自动对焦 2) 用户输入最后一个字段时如何提交表单 我试过belwo密码 /*最大字段值仅为1,它将在下一个字段中重定向*/ $(“.child”).keyup(函数(){ if(this.value.length==this.max

我有6个文本字段,每个字段都有
maxlength=1
。我使用的脚本,只有用户可以输入数字。输入数字后,光标将转到下一个字段,其他字段也会出现同样的情况,但当光标位于最后一个字段时,我必须调用AJAX来提交数据

我在这里面临两个问题

1) 如何在下一个输入字段上设置自动对焦

2) 用户输入最后一个字段时如何提交表单

我试过belwo密码

/*最大字段值仅为1,它将在下一个字段中重定向*/
$(“.child”).keyup(函数(){
if(this.value.length==this.maxLength){
$(this.next('.child').focus();
}
});
/*下面的脚本用于停止字母,只能在字段中使用数字*/
$(函数(){
$('.confirm字段')。on('keydown','.child',函数(e){
-1!=$.inArray(e.keyCode[46,8,9,27,13,110,190])|/65 | 67 | 86 | 88/.test(e.keyCode)&(!0==e.ctrlKey | |!0==e.metaKey)| 35=e.keyCode |(e.shiftKey | 48>e.keyCode 57e.keyCode
});
})
/*ajax调用*/
$(函数(){
$('form[name=“user confirmation code”]”)。在('submit',函数(e)上{
e、 预防默认值();
$.ajax({
键入:“post”,
url:'demo2.php',
数据:$('form[name=“user confirmation code”]”)。序列化(),
成功:函数(){
警报(“表格已提交”);
}
});
});
});
。确认框{
显示器:flex;
}
.确认码{
显示:内联flex;
}
.确认码输入[type=“text”]{
宽度:30px;
高度:30px;
}
.确认码破折号{
显示:表格单元格;
字号:700;
字号:2rem;
文本对齐:居中;
填充:0.5雷姆;
宽度:2em;
}

-

jquery
next
只检查当前父项,所以必须在正确的位置使用它。 检查此代码:

/*最大字段值仅为1,它将在下一个字段中重定向*/
$(“.child”).keyup(函数(){
if(this.value.length==this.maxLength){
var nextField=$(this.parent().next('.confirm field');
if(nextField.length==0){
nextField=$(this).parent().parent().next('.confirmation code破折号').next('.confirmation code').children('.confirmation field').first();
如果(nextField.length!=0){
nextField.children('.child')[0].focus();
}否则{
//这是表单中的最后一个字段,因此请提交表单
$(“表单[name='user-confirmation-code'])。提交();
}
}否则{
$(this).parent().next('.confirm字段').children('.child')[0].focus();
}
}
});
/*下面的脚本用于停止字母,只能在字段中使用数字*/
$(函数(){
$('.confirm field').on('keydown','.child',函数(e){-1!=$.inArray(e.keyCode[46,8,9,27,13110190])|/65 | 67 | 86 | 88/.test(e.keyCode)和(!0==e.ctrlKey | | | | | 0==e.metaKey)| 35=e.keyCode | |(e.shiftKey | 48>e.keyCode

下一个
不是一个。您必须遍历到它的元素,获取它紧随其后的兄弟,然后是您要查找的
。我检查了您的输出,我只能输入三个字段。一些更改,请检查。感谢您的回复,我在console nextField中遇到错误。children(…)[0]是未定义的现在检查一下,有一些输入错误。当我输入最后一个字段时,我得到了错误