Javascript JS表单验证不会产生任何结果
我正在学习CodeAcademy的课程,并尝试创建一个简单的HTML表单,用JS验证输入字段。这是我兄弟公司的一个宠物项目的开始(他需要完全重建他的网站) HTML:Javascript JS表单验证不会产生任何结果,javascript,html,forms,Javascript,Html,Forms,我正在学习CodeAcademy的课程,并尝试创建一个简单的HTML表单,用JS验证输入字段。这是我兄弟公司的一个宠物项目的开始(他需要完全重建他的网站) HTML: 电子邮件表格 JS脚本: function validateForm() { var fName = document.email-form.firstname.value; if (fName == null || fName == "") { alert("Please provide
电子邮件表格
JS脚本:
function validateForm() {
var fName = document.email-form.firstname.value;
if (fName == null || fName == "") {
alert("Please provide your first name!");
fName.firstname.focus();
return false;
}
var fEmail = document.email-form.email.value;
var atPos = fEmail.indexOf("@");
var dotPos = fEMail.lastIndexOf(".");
if (atPos < 1 || dotPos < atPos + 2 || dotPos + 2 >= fEmail.length) {
alert("Please enter a valid e-mail address");
return false;
}
}
函数validateForm(){
var fName=document.email-form.firstname.value;
如果(fName==null | | fName==“”){
提醒(“请提供您的名字!”);
fName.firstname.focus();
返回false;
}
var fEmail=document.email-form.email.value;
var atPos=女性指数(“@”);
var dotPos=fEMail.lastIndexOf(“.”);
如果(atPos<1 | | dotPos=女性邮件长度){
警报(“请输入有效的电子邮件地址”);
返回false;
}
}
我曾尝试通过在“提交”按钮上使用onclick=返回validateForm();,来解决这个问题,但这也不起作用
任何帮助对于真正想用正确的方法学习的人来说都是非常了不起的。首先:
文档。电子邮件表单
不起作用,你需要这样使用:文档['email-form']
。(因为-
将导致算术计算)
尝试使用浏览器的调试工具,您将看到错误消息
其次,在您的
标记中使用onsubmit=“return validateForm();”
,而不是在您的
标记中使用。此代码有几处错误。它背后的想法是正确的,尽管您的函数抛出了几个错误,这会导致函数中断,这意味着它不会返回任何内容
标识符不能包含字符“-”(减号)。它是为减法保留的。您不能在标识符中使用它。表达式document.email form.firstname.value
被解释为计算。它试图从文档.email
中减去form.firstname.value
。这两者都不存在,这会导致引用错误
使用下划线而不是减号,可以在标识符中安全地使用下划线。将表单名称从电子邮件表单
更改为电子邮件表单
fName.firstname.focus()
不存在。fName
是一个字符串(文本输入的内容)。实际上,您要做的是document.email\u form.firstname.focus()
您的函数应该始终返回一个值。因此,您应该在函数的最后返回true。这不是必需的,但它有助于提高代码的可读性
一旦你解决了所有这些问题,你可以在你的按钮上使用
onClick=“return validateForm()”
,或者在表单上使用onSubmit=“return validateForm()”
。return true在哪里?我想是电子邮件表单造成了麻烦。标识符中不能使用“-”。它被解释为一种计算(电子邮件形式)。改用email\u form
作为名称。我知道这是一个迟到的回复,但感谢您的详细回答。几个月后回到这个问题上来,我现在可以看到我犯的错误。@StefanP.DiBella这是出乎意料的。但还是很乐意帮忙:D
function validateForm() {
var fName = document.email-form.firstname.value;
if (fName == null || fName == "") {
alert("Please provide your first name!");
fName.firstname.focus();
return false;
}
var fEmail = document.email-form.email.value;
var atPos = fEmail.indexOf("@");
var dotPos = fEMail.lastIndexOf(".");
if (atPos < 1 || dotPos < atPos + 2 || dotPos + 2 >= fEmail.length) {
alert("Please enter a valid e-mail address");
return false;
}
}