Javascript 当我在HTML中将onkeyup用于JS函数时,为什么控制台会说我的函数没有定义?
我正在尝试做一个登记表,其中有一个文本框确认您的密码Javascript 当我在HTML中将onkeyup用于JS函数时,为什么控制台会说我的函数没有定义?,javascript,html,Javascript,Html,我正在尝试做一个登记表,其中有一个文本框确认您的密码 标签{ 显示:内联块; 宽度:100px; 边缘底部:10px; } 身体{ 字体系列:无衬线; } 登记 登记 用户名: 电子邮件地址: 密码: 确认密码: var pass=document.getElementsByName(“密码”); var confPass=document.getElementsByName(“passwordconf”); 函数passVal(){ if(pass.value!=confPass.va
标签{
显示:内联块;
宽度:100px;
边缘底部:10px;
}
身体{
字体系列:无衬线;
}
登记
登记
用户名:
电子邮件地址:
密码:
确认密码:
var pass=document.getElementsByName(“密码”);
var confPass=document.getElementsByName(“passwordconf”);
函数passVal(){
if(pass.value!=confPass.value){
confPass.setCustomValidity(“密码不匹配”);
}否则{
confPass.setCustomValidity(“”);
}
}
getElementsByName返回元素数组,
您应该改用id或获取数组的第一个元素(pass[0])getElementsByName返回一个元素数组,
您应该使用id,或者获取数组的第一个元素(pass[0])
标签{
显示:内联块;
宽度:100px;
边缘底部:10px;
}
身体{
字体系列:无衬线;
}
登记
登记
用户名:
电子邮件地址:
密码:
确认密码:
var pass=document.getElementsByName(“密码”)[0];
var confPass=document.getElementsByName(“passwordconf”)[0];
函数passVal(){
if(pass.value!=confPass.value){
console.log('notequal');
}否则{
console.log('Equal');
}
}
标签{
显示:内联块;
宽度:100px;
边缘底部:10px;
}
身体{
字体系列:无衬线;
}
登记
登记
用户名:
电子邮件地址:
密码:
确认密码:
var pass=document.getElementsByName(“密码”)[0];
var confPass=document.getElementsByName(“passwordconf”)[0];
函数passVal(){
if(pass.value!=confPass.value){
console.log('notequal');
}否则{
console.log('Equal');
}
}
这里需要解决的第一件事是如何通过使用
var pass = document.getElementsByName("passwordconf")
它返回名为passwordconf
的所有元素的数组
将.value
添加到变量pass
将返回undefined,因为您没有定义数组中要获取的元素。您可以添加[0]
以获取数组中的第一个元素(数组索引总是从0
开始计数),如下所示:
pass[0].value;
请注意,这样做,您将不会得到未定义的
passVal
错误。这里需要解决的第一件事是如何通过使用
var pass = document.getElementsByName("passwordconf")
它返回名为passwordconf
的所有元素的数组
将.value
添加到变量pass
将返回undefined,因为您没有定义数组中要获取的元素。您可以添加[0]
以获取数组中的第一个元素(数组索引总是从0
开始计数),如下所示:
pass[0].value;
请注意,这样做,您将不会得到未定义的
passVal
错误。应该调用该函数,但我确实看到了一个问题,即您有document.getElementsByName
,并将pass和confPass中的内容视为元素而不是HTML集合。欢迎使用。请在“请发布您的错误”网站浏览。它是否说setCustomValidity
未定义?或者passVal是未定义的?应该调用该函数,但我确实看到了一个问题,即您有document.getElementsByName
,并将pass和confPass中的内容视为元素而不是HTML集合。欢迎使用。请在“请发布您的错误”网站浏览。它是否说setCustomValidity
未定义?还是passVal未定义?谢谢你的建议。我尝试将两个变量的getElementsByName更改为getElementById,并向变量添加了ID。然而,同样的错误仍然出现在控制台中。谢谢您的建议。我尝试将两个变量的getElementsByName更改为getElementById,并向变量添加了ID。然而,同样的错误仍然出现在控制台中。谢谢您的帮助。我尝试进行您选择的更改,包括切换到ID,但我在console中收到相同的错误消息。今天早上,我尝试将带有更改的新代码放在不同的模拟器中,结果成功了。再次感谢。一定是repl.It.有问题,谢谢你的帮助。我尝试进行您选择的更改,包括切换到ID,但我在console中收到相同的错误消息。今天早上,我尝试将带有更改的新代码放在不同的模拟器中,结果成功了。再次感谢。一定是repl.It有问题。