2015-08-27 118 views
0

作爲一個新的人在JavaScript中試圖創建一個腳本,應該驗證註冊表單。簡單的事情,如果1個字段是空的,拋出適當的消息。我按照互聯網上的教程成功管理它,它按照我想要的方式工作,當1個字段爲空時數據庫不會更新。javascript輸入驗證 - 無法驗證所有字段爲空

但是有一個問題。當所有字段爲空時,腳本無法注意到這一點,並完美地進行註冊。

我的腳本如下:

function validateForm() 
{ 
var a=document.forms["Registration_Form"]["fname"].value; 
var b=document.forms["Registration_Form"]["lname"].value; 
var c=document.forms["Registration_Form"]["email"].value; 
var d=document.forms["Registration_Form"]["username"].value; 
var e=document.forms["Registration_Form"]["password"].value; 

if ((a==null || a=="") && (b==null || b=="") && (c==null || c=="") && (d==null || d=="") && (e==null || e=="")) 
    { 
    alert("All Field must be filled out"); 
    return false; 
    } 
if (a==null || a=="") 
    { 
    alert("First name must be filled out"); 
    return false; 
    } 
if (b==null || b=="") 
    { 
    alert("Last name must be filled out"); 
    return false; 
    } 
if (c==null || c=="") 
    { 
    alert("email adress must be filled out"); 
    return false; 
    } 
if (d==null || d=="") 
    { 
    alert("Username must be filled out"); 
    return false; 
    } 
if (e==null || e=="") 
    { 
    alert("Password must be filled out"); 
    return false; 
    } 
} 

這是鑽井通過我的大腦和我逼瘋了幾個小時。 當1個字段完成,其餘的缺失,我得到適當的消息爲第一個缺少的字段和所有好的,註冊是被阻止。

但是當所有都丟失,它只是不會發生,註冊成功,並輸入我的數據庫上的所有空白字段。

我不明白,它在這裏,對不對?

if ((a==null || a=="") && (b==null || b=="") && (c==null || c=="") && (d==null || d=="") && (e==null || e=="")) 
    { 
    alert("All Field must be filled out"); 
    return false; 
    } 

如果FNAME是空的,L-NAME是空的,郵件是空的,用戶名是空的,密碼是空的,警惕並返回false。 我不明白,怎麼會有這麼簡單的問題呢?我錯過了什麼?

即使這條線不存在,腳本是否應該被其餘​​的只有1個子句的if語句抓住並在那裏給出假?

回答

0

我會try它是這樣的。你不應該一次檢查他們...

function validateForm() 
{ 
    var a=document.forms["Registration_Form"]["fname"].value; 
    var b=document.forms["Registration_Form"]["lname"].value; 
    var c=document.forms["Registration_Form"]["email"].value; 
    var d=document.forms["Registration_Form"]["username"].value; 
    var e=document.forms["Registration_Form"]["password"].value; 

    try { 
    if ((a === '') || (a === null)) { 
     throw new Error('First name must be filled out'); 
    } 

    if ((b === '') || (b === null)) { 
     throw new Error('Last name must be filled out'); 
    } 

    if ((c === '') || (c === null)) { 
     throw new Error('email adress must be filled out'); 
    } 

    if ((d === '') || (d === null)) { 
     throw new Error('Username must be filled out'); 
    } 

    if ((e === '') || (e === null)) { 
     throw new Error('Password must be filled out'); 
    } 

    return true; 
    } 
    catch (formError) { 
    alert(formError.message); 
    return false; 
    } 
} 
+0

哦,它的工作原理,非常感謝。 我想我的方法一下子就把事情搞砸了嗎? – G90DD