2014-10-06 7 views
1

У меня возникла эта проблема, когда эта проверка перестала работать, начиная с части проверки электронной почты и далее.Проверка Javascript:

Я просто не мог понять, почему даже после нескольких дней, глядя на него, и просто интересно, может ли кто-нибудь указать мою ошибку здесь?

Javascript часть:

function validateForm() 
{ 
var x=document.forms["myForm"]["firstname"].value; 

if (x==null || x=="") 
    { 
    alert("First name must be filled out"); 
    return false; 
    } 

var x=document.forms["myForm"]["lastname"].value; 

if (x==null || x=="") 
    { 
    alert("Last name must be filled out"); 
    return false; 
    } 

var x=document.forms["myForm"]["age"].value; 

if (x==null || x=="" || x < 18 || x > 110 || isNaN(x)) 
    { 
    alert("Age must be 18-110"); 
    return false; 
    } 

var x=document.forms["myForm"]["email"].value; 
var atpos=x.indexOf("@"); 
var dotpos=x.lastIndexOf("."); 

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

var x=document.forms["myForm"]["phone"].value; 
var pattern = /^\(?([0-9]{2})\)?[ ]+([0-9]{4})[ ]+([0-9]{4})$/; 

if (x==null || x=="") 
    { 
    alert("Not a valid phone number"); 
    return false; 
    } else if (x.match(pattern)) { 
    return true; 
    } else { 
    alert ("Phone number must be in the following format: xx xxxx xxxx"); 
    return false; 
    } 
} 

и это форма часть:

<form id="myForm" action="../includes/create-user.php" onsubmit="return validateForm();" method="post"> 
    <div id = "table"> 
     <table> 
     <tr> 
      <td>First Name: </td> 
      <td><input type="text" name="firstname" id="firstname"/></td> 
     </tr> 
     <tr> 
      <td>Last Name: </td> 
      <td><input type="text" name="lastname" id="lastname"/></td> 
     </tr> 
     <tr> 
      <td>Age: </td> 
      <td><input type="text" name="age" id="age"/></td> 
     </tr> 
     <tr> 
      <td>E-mail (username): </td> 
      <td><input type="text" name="user" id="user1"/></td> 
     </tr> 
     <tr> 
      <td>Password: </td> 
      <td><input type="password" name="pass" id="pass1"/></td> 
     </tr> 
     <tr> 
      <td>Phone: </td> 
      <td><input type="text" name="phone" id="phone"/></td> 
     </tr> 
     </table> 
    </div> 
    <div> 
     <input type="submit" name="submit" id="submit" value="Register"/> 
    </div> 
</form> 
+0

Для того, чтобы убедиться, что вы понимаете, проверка на стороне клиента означает, что клиент сможет отключить ваши сценарии проверки и в любом случае отправить неаудированный контент на ваш сайт. Браузер всегда находится в руках врага. – Mark

+1

Спасибо за ваш ответ. Я студент, который только начал узнавать о javascript. я понимаю, что лучше всего проверять на стороне клиента и проверять на стороне сервера для предотвращения таких случаев, как SQL-инъекция с клиентской стороны. – Ong

ответ

1

Первое, что выделяется в том, что вы определяете ваше поле:

<td><input type="text" name="user" id="user1"/></td> 

с идентификатором = 'user1' и вы посмотрите в своем скрипте по электронной почте

var x=document.forms["myForm"]["email"].value; 
+1

спасибо за головы! Я изменил его на user1 в части скрипта, и он сработал. извините, я не должен был пропустить это. – Ong

Смежные вопросы