Javascript表单验证未运行

Javascript表单验证未运行,javascript,Javascript,无法让此表单运行javascript验证。我曾尝试在表单中将onclick更改为onsubmit,但从未让它运行脚本。对不起,如果这是一个明显的错误,但我已经在网上搜索了一段时间了。谢谢 <html> <head> <title>Email Form Page</title> <link href="mycss.css" rel="stylesheet"> <scrip

无法让此表单运行javascript验证。我曾尝试在表单中将onclick更改为onsubmit,但从未让它运行脚本。对不起,如果这是一个明显的错误,但我已经在网上搜索了一段时间了。谢谢

<html>
    <head>
        <title>Email Form Page</title>
        <link href="mycss.css" rel="stylesheet">   
        <script type="text/javascript">
            function validator(){
                var firstname = document.getElementsById('fname').value;
                var lastname = document.getElementsById('lname').value;
                var email = document.getElementsById('email').value;
                var subject = document.getElementsById('subject').value;
                var message = document.getElementsById('message').value;
                var errors = "";
                regex1 = /^[a-z]+$/;
                regex2 = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
                // Checks to see if all fields have been filled in
                if (firstname == ""){
                    errors += 'First name field is empty \n';
                   }
                if (lastname == ""){
                    errors += 'Last name field is empty \n';
                   }    
                if (email == ""){
                    errors += 'Your Email field is empty \n';
                   } 
                if (subject == ""){
                    errors += 'Subject field is empty \n';
                   }                    
                if (message == ""){
                    errors += 'Message field is empty \n';
                   }
                // Checks if first name contains only letters     
                if (regex1.text(firstname)) == false {
                    errors += 'First name can not contain numbers \n';
                }
                // Checks if last name contains only leters 
                if (regex1.text(lastname)) == false {
                    errors += 'Last name can not contain numbers \n';
                }   
                // checks to see if email is valid
                if (regex2.text(email) == true) {
                    errors += 'Email was not valid \n';
                }

                //alerts errors and kills form
                if (errors != ""){
                    alert(errors);
                    return false;
                }

        </script> 
    </head>

    <body>
        <h1> Send me an Email </h1>
        <div class= "container">
        <form name="emailform" method="post">
            First Name: <input type='text' name ='firstname' id="fname"> <br>
            Last Name:  <input type='text' name ='lastname' id="lname"> <br>
            Your Email: <input type='text' name ='email' id ="email"> <br>
            Subject:    <input type='text' name='subject' id ="subject">  <br>
            Message:    <textarea rows='6' cols='30' name='message' id="messsage"> </textarea> <br>
            <input type='submit' value ='Send' name='submit' onclick= "validator()">
        </form>
        </div>
    </body>
 </html>

电子邮件表单页
函数验证器(){
var firstname=document.getElementsById('fname').value;
var lastname=document.getElementsById('lname').value;
var email=document.getElementsById('email').value;
var subject=document.getElementsById('subject').value;
var message=document.getElementsById('message').value;
var误差=”;
regex1=/^[a-z]+$/;
regex2=/^\w+@[a-zA-Z\+?\[a-zA-Z]{2,3}$/;
//检查是否已填写所有字段
如果(firstname==“”){
错误+='名字字段为空\n';
}
如果(lastname==“”){
错误+='姓氏字段为空\n';
}    
如果(电子邮件==“”){
错误+='您的电子邮件字段为空\n';
} 
如果(主题==“”){
错误+='主题字段为空\n';
}                    
如果(消息==“”){
错误+='消息字段为空\n';
}
//检查名字是否只包含字母
if(regex1.text(firstname))==false{
错误+='名字不能包含数字\n';
}
//检查姓氏是否只包含删除者
if(regex1.text(lastname))==false{
错误+='姓氏不能包含数字\n';
}   
//检查电子邮件是否有效
if(regex2.text(email)==true){
错误+='电子邮件无效\n';
}
//警告错误并终止表单
如果(错误!=“”){
警报(错误);
返回false;
}
给我发封电子邮件
名字:
姓氏:
您的电子邮件:
主题:
信息:

某些if语句中存在语法错误

e、 g

应该是

if (regex1.text(firstname) == false) {
                    errors += 'First name can not contain numbers \n';
                }
其他一些错误

  • 使用document.getElementsById-这应该是getElementById,因为只有一个元素具有此id
  • Message textarea的id为“Message”而不是“Message”
  • 正如帕特里克在评论中所说,应该有一个测试而不是文本方法
检查语法
如果(regex1.text(firstname))==false
无效,也没有
。RegExp对象上的text
方法是否意味着
。测试
。您应该在浏览器的开发人员工具控制台上收到错误消息
if (regex1.text(firstname) == false) {
                    errors += 'First name can not contain numbers \n';
                }