2013-05-01 66 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