Javascript php验证,表单提交第二次提交后,填写一个文本框中的两个文本框

Javascript php validation, form submiting on the second time submit after filling one text box out of 2 textboxes

本文关键字:文本 验证 一个 php 两个 表单提交 提交 Javascript 第二次      更新时间:2023-09-26

我正在尝试php javascript表单验证。有2个输入字段。这两个字段都是必填项。第一次javascript验证是工作和表单不提交,但当我填写一个文本框值验证错误,然后表单提交没有验证。

下面是html代码

    <form method="post" name="form_register" id="form_register" action=""  onSubmit="return formValidation();">
        <input type="text" id="firstname" name="firstname" value="<?=$_POST['firstname']?>" size="25"> 
        <input id="lastname" value="<?=$_POST['lastname']?>" name="lastname" type="text" size="25">

javascript代码:

function formValidation()  
{

    var firstname= document.forms["form_register"]["firstname"].value;
    if (firstname===null || firstname==="")
    {
       alert("First name must be filled out");
       document.getElementById('firstname').focus();
       return false;
    }
    var lastname = document.forms["form_register"]["lastname"].value;
        if(lastname  === null || lastname ==="")
         {
              alert("Last name must be filled out");
              document.getElementById('lastname').focus();
             return false;
         }
        else
            {
         return true;
                }
}

表单后的Php代码:

if(isset($_POST['submit']))
{
       //insertion goes here
}

我第一次没有在文本字段中输入。Result: validation is working.

第二次提交时,我只填了第一个文本框结果:表单提交时没有检查第二个输入验证

您在javascript中为lastname添加了一个额外的空间。

就是用"lastname"代替"lastname"

这就是导致验证(javascript函数)在执行该行后失败的原因。

试试这个代码

 <script type="text/javascript">        
        function formValidation()  
{

    var firstname= document.forms["form_register"]["firstname"].value;
    var lastname = document.forms["form_register"]["lastname"].value;
    if (firstname===null || firstname==="")
    {
       alert("First name must be filled out");
       document.getElementById('firstname').focus();
       return false;
    }
    else if(lastname  === null || lastname ==="")
         {
              alert("Last name must be filled out");
              document.getElementById('lastname').focus();
             return false;
         }
    else
    {
        return true;
    }
}</script>
<form method="post" name="form_register" id="form_register" action=""  onSubmit="return formValidation();">
        <input type="text" id="firstname" name="firstname" value="<?=$_POST['firstname']?>" size="25"> 
        <input id="lastname" value="<?=$_POST['lastname']?>" name="lastname" type="text" size="25">
        <input type="submit" name="submit" value="submit">
</form>

javascript代码中的"lastname"后面的引号内有一个空格

    var lastname = document.forms["form_register"]["lastname "].value;
          document.getElementById('lastname ').focus();