Can';无法使JavaScript表单验证正常工作

Can';无法使JavaScript表单验证正常工作,javascript,html,Javascript,Html,我的HTML表单设置有一个链接到它的外部JS文件: <script type="text/javascript" src ="../a1/js/formvalid.js"></script> 在下面输入您的详细信息 名字: 必填项:请输入您的名字 姓氏: 必填项:请输入您的姓氏 电邮: 必填项:请输入您的电子邮件 当表单无效时,您需要阻止表单提交。关于这一点,StackOverflow上有很多帖子。这里有一个: 概念是从vali

我的HTML表单设置有一个链接到它的外部JS文件:

<script type="text/javascript" src ="../a1/js/formvalid.js"></script>

在下面输入您的详细信息
名字:
必填项:请输入您的名字
姓氏: 必填项:请输入您的姓氏
电邮: 必填项:请输入您的电子邮件
当表单无效时,您需要阻止表单提交。关于这一点,StackOverflow上有很多帖子。这里有一个:

概念是从
validateForm()
函数返回
false
,以防止提交。此外,应防止触发默认事件

函数验证窗体(事件){
event.preventDefault();
...
}

您必须对HTML和javascript代码进行一些更改。
目前,我做了一些不同的代码,我想你喜欢这个东西。
在HTML代码中,您必须更改按钮单击事件

<div id="grid-container">
  <h3>Enter your Details Below</h3>
  <form id="registration_form" action="">
    <div><label for="firstname">First Name: </label><input type="text" name = "firstname" id="firstname"></div>
    <div class="error" id="firstnameError">Required: Please enter your first name</div><br>
                    
    <div><label for="lastname">Last Name: </label><input type="text" name = "lastname" id="lastname"></div>
    <div class="error" id="lastnameError">Required: Please enter your Last name</div><br>
                    
    <div><label for="email">Email: </label><input type="text" name = "email" id="email"></div>
    <div class="error" id="emailError">Required: Please enter your email</div>
                    
    <input type="button" value="Register" onClick="validateForm()"/>
   </form>
</div>

它确实调用了
validateForm()
func-您的代码没有问题。您的代码运行良好-我已编辑您的问题并将其添加到可运行的代码段中,以便您可以查看。如果这不是你想要的,你到底想发生什么?另外,你确定JS文件被正确地包含了吗?这很奇怪,它在这里工作,但当我尝试在浏览器中运行它时却不工作。问题中的代码已经使用了
return
,表单没有按照你的预期提交,而且工作正常,所以我认为
preventDefault
不会添加任何内容。。。
    document.getElementById("firstnameError"). style.display = "none";
    document.getElementById("lastnameError"). style.display = "none";
    document.getElementById("emailError"). style.display = "none";
    function validateForm() 
    {
      document.getElementById("firstnameError"). style.display = "none";
      document.getElementById("lastnameError"). style.display = "none";
      document.getElementById("emailError"). style.display = "none";
      var firstname = document.getElementById("firstname").value;
      var surname = document.getElementById("lastname").value;
      var email = document.getElementById("email").value;
      var flagValidate = true;
      if (firstname == "") 
      { 
        document.getElementById("firstnameError"). style.display = "block";
        document.getElementById("firstnameError"). style.color = "red";
        flagValidate = false;
      }
    
      if (surname == "") 
      {   
        document.getElementById("lastnameError"). style.display = "block";
        document.getElementById("lastnameError"). style.color = "red";
        flagValidate = false;
      }
    
      if(email == "")
      {
        document.getElementById("emailError"). style.display = "block";
        document.getElementById("emailError"). style.color = "red";
        flagValidate = false;
      }
    
      if(flagValidate)
      {
        document.getElementById("registration_form").submit();
      }
  }