Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/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:Focus不是一个函数_Javascript_Html_Css_Forms - Fatal编程技术网

Javascript:Focus不是一个函数

Javascript:Focus不是一个函数,javascript,html,css,forms,Javascript,Html,Css,Forms,我正在写一份登记表,并试图整理一些验证。当我的validate按钮位于中时,我遇到了同样的问题,但是为了解决这个问题,我只是将其移出,因为我猜该按钮会导致表单刷新。 然而,在将多个if语句插入“ValidateForm()”函数之后,这个错误消息似乎又回来了 错误:未捕获类型错误:Forename.focus不是函数 在ValidateForm(登录表单Complex.html?名=&姓=&用户名=&密码=&电子邮件=:79) 在HTMLButtonElement.onclick(登录表单Com

我正在写一份登记表,并试图整理一些验证。当我的validate按钮位于
中时,我遇到了同样的问题,但是为了解决这个问题,我只是将其移出,因为我猜该按钮会导致表单刷新。 然而,在将多个if语句插入“ValidateForm()”函数之后,这个错误消息似乎又回来了

错误:未捕获类型错误:Forename.focus不是函数
在ValidateForm(登录表单Complex.html?名=&姓=&用户名=&密码=&电子邮件=:79)
在HTMLButtonElement.onclick(登录表单Complex.html?名字=&姓氏=&用户名=&密码=&电子邮件=:63)**

函数ValidateForm(){
var Forename=document.getElementById(“Forename”).value;
var姓氏=document.getElementById(“姓氏”).value;
var Username=document.getElementById(“用户名”).value;
var Password=document.getElementById(“密码”).value;
var Email=document.getElementById(“Email”).value;
var错误=0
如果(名字==“”){
document.LoginForm.Forename.focus();
focus();
错误=错误+1
}
如果(姓氏==“”){
document.LoginForm.Forename.focus();
姓focus();
错误=错误+1
}
如果(用户名==“”){
document.LoginForm.Forename.focus();
Username.focus();
错误=错误+1
}
如果(密码==“”){
document.LoginForm.Forename.focus();
Password.focus();
错误=错误+1
}
如果(错误!=0){
警告(“请填写突出显示的方框”)
返回false;
}
}
正文{
保证金:0;
填充:0;
背景:url(LoginBack.jpg);
背景尺寸:封面;
背景位置:中心;
字体系列:世纪哥特式;
}
.loginbox{
宽度:420px;
高度:680px;
背景#5CDB95;
颜色:#05386B;
最高:50%;
左:50%;
位置:绝对位置;
转换:翻译(-50%,-50%);
框大小:边框框;
填充:70px 30px;
边界半径:30px;
}
.阿凡达{
宽度:150px;
高度:150像素;
边界半径:50%;
位置:绝对位置;
顶部:-75px;
左:计算(50%-75px);
}
h1{
边际:0px;
填充:0 20px;
文本对齐:居中;
字体大小:40px;
}
.loginbox p{
保证金:0;
填充:0;
字体大小:粗体;
}
.loginbox输入{
宽度:100%;
边缘底部:20px;
}
.loginbox输入[type=“text”],
输入[type=“password”],
输入[type=“email”]{
边界:无;
边框底部:1px实心#05386B;
背景:透明;
大纲:无;
高度:40px;
字体大小:20px;
颜色:#379683;
}
.loginbox按钮[type=“Submit”]{
边框:2px实心#05386B;
背景:#379683;
高度:40px;
宽度:362px;
字体大小:20px;
颜色:;
边界半径:20px;
}
.loginbox按钮[type=“submit”]:悬停{
光标:指针;
背景:8EE4AF;
}
.loginbox a{
文字装饰:无;
字体大小:15px;
线高:20px;
颜色:#379683;
}
.loginbox a:悬停{
光标:指针;
颜色:#8EE4AF;
}
.loginbox输入[type=“text”]:焦点,
输入[type=“password”]:焦点,
输入[type=“email”]:焦点{
边界:无;
边框底部:1px实心#8B0000;
背景:透明;
大纲:无;
高度:40px;
字体大小:20px;
颜色:#8万;
}

创建帐户
名字
姓氏
用户名
密码
电子邮件
提交




验证
您的
Forename
变量未包含对DOM元素的引用。它引用的是该元素的
.value
。对于所有其他DOM变量也是如此

var Forename = document.getElementById("Forename").value;
没有
.focus()
方法。元素确实如此

通常,最好不要将变量设置为DOM元素的属性,因为如果以后确定需要不同的DOM属性,则必须再次扫描DOM以查找已扫描的引用。此外,将变量设置为DOM元素本身,而不是元素的属性,将防止您的错误,这是非常常见的

因此,将变量更改为如下设置:

var Forename = document.getElementById("Forename");
然后,当您需要该值时,您可以编写:

Forename.value
Forename.focus();
而且,当您想使用
focus()
方法时,只需编写:

Forename.value
Forename.focus();

如果总是从元素本身开始,则可以访问元素的任何方面。

您的
Forename
变量未包含对DOM元素的引用。它引用的是该元素的
.value
。对于所有其他DOM变量也是如此

var Forename = document.getElementById("Forename").value;
没有
.focus()
方法。元素确实如此

通常,最好不要将变量设置为DOM元素的属性,因为如果以后确定需要不同的DOM属性,则必须再次扫描DOM以查找已扫描的引用。此外,将变量设置为DOM元素本身,而不是元素的属性,将防止您的错误,这是非常常见的

因此,将变量更改为如下设置:

var Forename = document.getElementById("Forename");
然后,当您需要该值时,您可以只写:

Forename.value
Forename.focus();
而且,当您想使用
focus()
方法时,只需编写:

Forename.value
Forename.focus();

如果总是从元素本身开始,则可以访问元素的任何方面。

例如,
Forename
var的值为
Forename
输入元素,然后:

var Forename = document.getElementById("Forename"); //DOM element

var fornameValue = Forename.value //value

Forename.focus()  //focus function 

例如,
Forename
var具有
Forename
输入元素的值,然后:

var Forename = document.getElementById("Forename"); //DOM element

var fornameValue = Forename.value //value

Forename.focus()  //focus function 

您可能还需要关闭输入标记
var Forename=document.getElementById(“Forename”)。。。。如果(Forename.value==“”)…
因为您有一个字符串。。。。你不能集中注意力string@Stradosphere
input
元素不会关闭。@mplungjan
p
元素的关闭标记是可选的。我没有利用这个事实,但它是有效的。你可能还需要关闭你的输入