0

我正在使用 php mysql 进行用户注册。我添加了 javascript 验证来检查任何字段是否为空白。但是表单验证不起作用。形式是

<?php
include("header.php");
include ("includes/mainmenu.php");
?>


<!--Javasript Validation File Import -->
<script type="text/javascript" src="js/validation.js"></script>
<script type="text/javascript" src="js/formreg.js"></script>
<script type="text/javascript" language="JavaScript">

function HidePart(d) { document.getElementById(d).style.display = "none";  }
function ShowPart(d) { document.getElementById(d).style.display = "block"; }
function CheckboxChecked(b,d)
{
   if(b) { ShowPart(d); }
   else  { HidePart(d); }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--<link rel="stylesheet" type="text/css" href="styles/styles.css" />-->
<link href="styles/form.css" rel="stylesheet" type="text/css">
<link href="styles/structure.css" rel="stylesheet">
<link href="styles/bootstrap.css" rel="stylesheet">

</head>

<body onLoad="document.registration.userid.focus();">
<br>
<div id="container" class="ltr">
    <header id="header" class="info">
<h2>User Registration</h2>
</header>
    <form action="insert.php" method="post" name="regForm" onSubmit="return valide()">


            <ul>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Name</label>
            <span><input id="fname" type="text" name="fname" class="field text1 fn" size="50"/></span><span>Please Enter Your full Name</span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Username</label>
            <span><input id="Field0" type="text" name="usernamename" class="field text1 fn"  size="50" /></span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="group">Educational Background</label></td>
            <span><select id="Field0" class="field text1 fn" name="background" size="0">
                <option selected="0" value="">select your Background</option>
                <option value="Science">Science</option>
                <option value="Humanities">Humanities</option>
                <option value="Commerce">Commerce</option>
                </select></span><span>Enter your HSC Background</span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Date of Birth</label>
            <span><input id="Field0"  type="date" name="birth" class="field text1 fn"  size="50"/></span><span>Enter your date of Birth</span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Password</label>
            <span><input id="Field0"  type="password" name="password" class="field text1 fn" size="50" /></span><span>Enter your password</span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Password</label>
            <span><input id="Field0"  type="password" name="conpassword"  class="field text1 fn" size="50" /></span><span>Enter your password again</span>
            </li>

            <li id="foli0" class="notranslate">
            <label class="desc" id="title0" for="Field0">Email</label>
            <span><input id="Field0"  type="text" name="email" class="field text1 fn" size="50" /></span><span>Enter a valid email address</span>
            </li>
            <li class="buttons ">
            <div>

                    <input id="submit" name="submit" class="btn" type="submit" value="Complete Registration"/></div>
            </li>

            </ul>
        </form>



            </div>


<?php
include("includes/footer.php");
?>

验证javascript代码是

function valide()
{
var fname=document.forms["regForm"]["fname"].value;
var username=document.forms["regForm"]["username"].value;
var subject = document.forms["regForm"]["background"].value;
var password=document.forms["regForm"]["password"].value;
var conpassword=document.forms["regForm"]["conpassword"].value;
var email=document.forms["regForm"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");


if (fname==null || fname=="" || fname.length<7)
  {
  alert("Please provide Your full name");
  return false;
  }

else if (username==null || username=="")
  {
      if(username.length<6)
        {
            alert("Username must contains atleast 6 charecters");
        }
        else
  alert("Please provide a username");
  return false;
  }
 else if(subject==null || subject == "")
    {
        alert("Enter Background");
        return false;
        } 
 else if (password==null || password=="")
  {
      if(password.length<8)
        {
            alert("Password must contain atleast 8 charecters");
            }
            else
  alert("Please insert your password");
  return false;
  }
   else if (conpassword != password)
  {
  alert("Confirm password doesn't match");
  return false;
  }

else if (email==null || email=="")
  {
  alert("Email must be filled out.");
  return false;
  }

else if (atpos <1 || dotpos <atpos+2 || dotpos + 2 >= email.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }
}

请帮我。

4

1 回答 1

0

让我们看看你的函数 valide()

它有一些错误,当一切正常时它不会返回......

由于它不返回true,因此没有提交表单......

这是一个更正的版本:

function valide(){
var fname=document.forms["regForm"]["fname"].value;
var username=document.forms["regForm"]["username"].value;
var subject = document.forms["regForm"]["background"].value;
var password=document.forms["regForm"]["password"].value;
var conpassword=document.forms["regForm"]["conpassword"].value;
var email=document.forms["regForm"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");


// Let me warn you:
// There are many many people with names less than 7 characters

if (fname==null || fname=="" || fname.length<7) {
  alert("Please provide Your full name");
  return false;
} // if returned so else is not required

if (username==null || username==""){
    if(username.length<6){
            alert("Username must contains atleast 6 charecters");
    } else
            alert("Please provide a username");
    return false;
} // if returned so else is not required

if(subject==null || subject == ""){
    alert("Enter Background");
    return false;
} // if returned so else is not required 

if (password == null || password==""){
   // length = 0 or password is null here so:  
   // if(password.length<8)  is unnecessary 
   if(password == ""){  
          alert("Password must contain at least 8 charecters");
   } else
          alert("Please insert your password");
   return false;
}  // if returned so else is not required

if (conpassword != password){
   alert("Confirm password doesn't match");
   return false;
}  // if returned so else is not required

if (email==null || email==""){
   alert("Email must be filled out.");
   return false;
} // if returned so else is not required

if (atpos <1 || (dotpos <atpos+2) || (dotpos + 2 >= email.length)){
   alert("Not a valid e-mail address");
   return false;
} // if returned no else needed.

// and now this function should return:
return(true); 
}
于 2013-04-06T21:11:12.237 回答