2013-05-01 55 views
0

請注意,我將在表單提交時驗證所有使用PHP的所有內容,但是如果可能的話,我想立即將其顯示給用戶。與一些javascript,密碼/用戶名錯誤拼搏顯示

對於用戶名我試圖檢測它是否只包含空格,如果它小於8個字符/數字,並且它只包含普通有效字母和沒有符號。

這似乎並不工作:

$("#username").change(function() { 
    $("#username").removeClass("error"); 
    var letterNumber = /^[0-9a-zA-Z]+$/; 
    var username = $("#username").val(); // get value of password 
    if (!(username.value.match(letterNumber)) { 
    // return error 
    } 
    if (username.length < 8) { 
    // return error 
    } 
    if (username.trim().length() > 0) { 
    // return error 
    } 
}); 

和密碼的,我希望讓所有的符號,所有數字,所有字母,最低8,和裝飾的空白。它似乎並沒有工作。從這個

+1

你的問題是什麼?有一件事是'username.trim()'應該返回> 0,如果它是0,則應該返回錯誤。 – 2013-05-01 16:19:45

+0

哦,它將是'username.trim()。length',沒有parens的長度。 – 2013-05-01 16:20:24

回答

0

變化:

if (!(username.value.match(letterNumber)) { 
    // return error 
} 

這樣:

if (!(username.match(letterNumber)) { 
    // return error 
} 

你已經取得的.value當你使用.val()較早所以username已經是所需的字符串。


此外,.trim()測試是不正確的作爲.length是一個屬性都通過本身,而不是的方法)。但是,你可以刪除它,因爲之前的正則表達式測試已經消除了只有空白的空字符串和字符串,所以這個測試(即使修正爲正確的JavaScript)是不必要的。

if (username.trim().length() > 0) { 
    // return error 
} 

在未來,你應該尋找在你的瀏覽器錯誤控制檯或調試控制檯,因爲它會告訴你像未定義沒有一個方法.match()並給予您詳細的行號錯誤的來源。

+0

Tyvm,將在未來中做到這一點 – 2013-05-01 16:29:15

+0

@JohnDOe - 我在我的回答中也添加了第二個語法錯誤。 – jfriend00 2013-05-01 16:30:46