2016-09-11 6 views
2

누구든지 해결할 수 있다면 내 양식 유효성 검사가 작동하지 않는 이유가 궁금합니다. 양식의 입력을 확인하려면 필요하지만 작동하지 않고 제출 만하면됩니다. 그것이 내가 문제를 발견자바 스크립트 양식 유효성 검사가 작동하지 않습니다.

<form id="regform" method="post" action="register.php"> 
       <p>Areas marked with a (*) are required by the form!</p> 
     <fieldset> 
      <legend>Account Information</legend> 
      <div class="textinput"> 
       <label for="username">User Name *</label> 
       <input id="username" type="text" name="id" /> 
      </div> 
      <div class="textinput"> 
       <label for="email">Email *</label> 
       <input id="email" type="text" name="id" /> 
      </div> 
      <div class="textinput"> 
       <label for="pwd1">Password *</label> 
       <input id="pwd1" type="password" name="pwd1" /> 
       <span id="pwdHelpBtn" class="button" >Password Rule</span> 
       <div id="pwdHelpWin" class="window" > 
        <p>Password must satisfy the following:</p> 
        <ul> 
         <li>Must be 8 characters long</li> 
         <li>Must contain atleast 1 number</li> 
         <li>Must contain atleast 1 upper & lower case letter</li> 
        </ul> 
        <span id="pwdHelpClose" class="button" >Close</span> 
       </div> 
      </div> 
      <div class="textinput"> 
       <label for="pwd2">Retype Password *</label> 
       <input id="pwd2" type="password" name="pwd2" /> 
      </div> 
     </fieldset> 
     <fieldset> 
      <legend>User Information</legend> 
      <div class="textinput"> 
       <label for="name">Name *</label> 
       <input id="name" type="text" name="name" /> 
      </div> 
      <div class="radioinput"> 
       <fieldset> 
        <legend>Gender *</legend> 
        <input id="genderm" type="radio" name="gender" value="M" /> 
        <label for="genderm">Male</label> 
        <input id="genderf" type="radio" name="gender" value="F" /> 
        <label for="genderf">Female</label>  
       </fieldset> 
      </div> 
     </fieldset> 
     <p> 
      <input id="signup" type="submit" value="Submit"/> 
     </p> 
    </form> 


function validate() 
{ 
    var pwd1 = document.getElementById("pwd1").value; 
    var pwd2 = document.getElementById("pwd2").value; 
    var username = document.getElementById("username").value; 
    var genderm = document.getElementById("genderm").checked; 
    var genderf = document.getElementById("genderf").checked; 
    var name = document.getElementById("name").value; 
    var email = document.getElementById("email").value; 

    var errmsg = ""; 
    var result = true; 
    var pattern = /^[a-zA-z ]+$/; 

    var pwd1length = pwd1.length; 

    if(email == "") 
    { 
     errmsg += "Email cannot be empty\n"; 
    } 
    else 
    { 
     if(!email.match("@")) 
     { 
      errmsg += "Please enter email address\n"; 
     } 
    } 
    if(pwd1 == "") 
    { 
     errmsg += "Please Enter a Password\n"; 
    } 
    else 
    { 
     if(pwd1length < 6) 
      errmsg += "Password must be atleast 6 characters long\n"; 
    } 

    if(pwd2 == "") 
    { 
     errmsg += "Please Re-enter a Password\n"; 
    } 
    else 
    { 
     if(pwd2 != pwd1) 
     { 
      errmsg += "Password does not match\n"; 
     } 
    } 
    if(username == "") 
    { 
     errmsg += "Please enter a User Name\n"; 
    } 
    else 
    { 
     if(!username.match (pattern)) 
     { 
      errmsg += "User Name Contains Symbols\n"; 
     } 
    } 
    if(!(genderm || genderf)) 
    { 
     errmsg += "Please Select Gender\n";  
    } 
     if(name != "") 
    { 
     errmsg += "Please enter a name\n" 
    } 
    if(errmsg != "") 
    { 
     alert (errmsg); 
     result = false; 
    } 
    return result; 
} 
function init() 
{ 
    name = document.getElementById("name"); 
    email = document.getElementById("email"); 
    pwd1 = document.getElementById("pwd1"); 
    pwd2 = document.getElementById("pwd2"); 
    username = document.getElementById("username"); 

    var regForm = document.getElementById("regform"); 

    regForm.onsubmit = validate; 

} 

window.onload = init; 
+0

개발자 도구 콘솔에 오류가 있습니까? 너는 뭘 기대하니? 당신은 실제로 무엇을 관찰합니까? –

+0

비어 있거나 잘못 입력 된 양식의 비트를 경고하려고합니다. – Ib311

+0

입력 태그에 필수 속성을 추가하십시오. –

답변

1

를 작동하지 않는 이유는, 당신은

if(name == "") 
    { 
     errmsg += "Please enter a name\n" 
    } 

function validate() 
 
{ 
 
    var pwd1 = document.getElementById("pwd1").value; 
 
    var pwd2 = document.getElementById("pwd2").value; 
 
    var username = document.getElementById("username").value; 
 
    var genderm = document.getElementById("genderm").checked; 
 
    var genderf = document.getElementById("genderf").checked; 
 
    var name = document.getElementById("name").value; 
 
    var email = document.getElementById("email").value; 
 

 
    var errmsg = ""; 
 
    var result = true; 
 
    var pattern = /^[a-zA-z ]+$/; 
 

 
    var pwd1length = pwd1.length; 
 

 
    if(email == "") 
 
    { 
 
     errmsg += "Email cannot be empty\n"; 
 
    } 
 
    else 
 
    { 
 
     if(!email.match("@")) 
 
     { 
 
      errmsg += "Please enter email address\n"; 
 
     } 
 
    } 
 
    if(pwd1 == "") 
 
    { 
 
     errmsg += "Please Enter a Password\n"; 
 
    } 
 
    else 
 
    { 
 
     if(pwd1length < 6) 
 
      errmsg += "Password must be atleast 6 characters long\n"; 
 
    } 
 

 
    if(pwd2 == "") 
 
    { 
 
     errmsg += "Please Re-enter a Password\n"; 
 
    } 
 
    else 
 
    { 
 
     if(pwd2 != pwd1) 
 
     { 
 
      errmsg += "Password does not match\n"; 
 
     } 
 
    } 
 
    if(username == "") 
 
    { 
 
     errmsg += "Please enter a User Name\n"; 
 
    } 
 
    else 
 
    { 
 
     if(!username.match (pattern)) 
 
     { 
 
      errmsg += "User Name Contains Symbols\n"; 
 
     } 
 
    } 
 
    if(!(genderm || genderf)) 
 
    { 
 
     errmsg += "Please Select Gender\n";  
 
    } 
 
     if(name == "") 
 
    { 
 
     errmsg += "Please enter a name\n" 
 
    } 
 
    if(errmsg != "") 
 
    { 
 
     alert (errmsg); 
 
     result = false; 
 
    } 
 
    alert("SUCCESS"); 
 
    return result; 
 
} 
 
function init() 
 
{ 
 
    name = document.getElementById("name"); 
 
    email = document.getElementById("email"); 
 
    pwd1 = document.getElementById("pwd1"); 
 
    pwd2 = document.getElementById("pwd2"); 
 
    username = document.getElementById("username"); 
 

 
    var regForm = document.getElementById("regform"); 
 

 
    regForm.onsubmit = validate; 
 

 
} 
 

 
window.onload = init;
<!DOCTYPE html> 
 
<html> 
 

 
    <head> 
 
    <link rel="stylesheet" href="style.css"> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body> 
 
    <form id="regform" method="post" action="register.php"> 
 
       <p>Areas marked with a (*) are required by the form!</p> 
 
     <fieldset> 
 
      <legend>Account Information</legend> 
 
      <div class="textinput"> 
 
       <label for="username">User Name *</label> 
 
       <input id="username" type="text" name="id" />Username must be a alphabet 
 
      </div> 
 
      <div class="textinput"> 
 
       <label for="email">Email *</label> 
 
       <input id="email" type="text" name="id" /> 
 
      </div> 
 
      <div class="textinput"> 
 
       <label for="pwd1">Password *</label> 
 
       <input id="pwd1" type="password" name="pwd1" /> 
 
       <span id="pwdHelpBtn" class="button" >Password Rule</span> 
 
       <div id="pwdHelpWin" class="window" > 
 
        <p>Password must satisfy the following:</p> 
 
        <ul> 
 
         <li>Must be 8 characters long</li> 
 
         <li>Must contain atleast 1 number</li> 
 
         <li>Must contain atleast 1 upper & lower case letter</li> 
 
        </ul> 
 
        <span id="pwdHelpClose" class="button" >Close</span> 
 
       </div> 
 
      </div> 
 
      <div class="textinput"> 
 
       <label for="pwd2">Retype Password *</label> 
 
       <input id="pwd2" type="password" name="pwd2" /> 
 
      </div> 
 
     </fieldset> 
 
     <fieldset> 
 
      <legend>User Information</legend> 
 
      <div class="textinput"> 
 
       <label for="name">Name *</label> 
 
       <input id="name" type="text" name="name" /> 
 
      </div> 
 
      <div class="radioinput"> 
 
       <fieldset> 
 
        <legend>Gender *</legend> 
 
        <input id="genderm" type="radio" name="gender" value="M" /> 
 
        <label for="genderm">Male</label> 
 
        <input id="genderf" type="radio" name="gender" value="F" /> 
 
        <label for="genderf">Female</label>  
 
       </fieldset> 
 
      </div> 
 
     </fieldset> 
 
     <p> 
 
      <input id="signup" type="submit" value="Submit"/> 
 
     </p> 
 
    </form> 
 
    </body> 
 

 
</html>

에 코드 if(name != "") 다음 교체해야 로직의 대부분을 이해하지만 아무 생각이 없다
+0

감사합니다. 오류가 두 개의 javascript를 동시에로드하려고 시도했기 때문에 실현되었습니다. – Ib311

+0

ok! 코딩 :-) – Gowtham

관련 문제