2011-04-22 61 views
0

我试图创建一个验证方法,以确保用户输入值以前没有被输入,以避免任何重复的名称。我已经看到了inArray方法,并认为下面的代码会告诉我它是否已经在数组中找到值了?JQuerys inArray Confusion

if(jQuery.inArray(newName, nameArray) >= 0) 
{ 
    alert("found"); 
} 
else //if -1 
{ 
    alert("not found"); 
    classnameArrays.push(newClassName); 
} 

任何人都可以看到代码有什么问题。所有我想要实现的是将名称插入到数组中,如果他们没有其他名称已存在相同的值。

感谢您的任何反馈意见。

+2

看起来你正在检查'nameArray'并推入不同的数组'classnameArrays' – 2011-04-22 17:28:06

+0

没关系 - http://jsfiddle.net/f3JkX/ – 2011-04-22 17:30:36

+0

另外,你最好检查这种东西在服务器上。为了使用javascript来检查注册用户的名称与其他所有名称,显然必须以某种方式将该数据提供给JavaScript(通过将其加载到页面或AJAX中)。这暴露了数据库中每个用户的名字 - 公开 - 在隐私方面的不好做法。另外,如果最终有成千上万的用户,这个代码可能会让浏览器在所有这些名称间循环挂起,这在可伸缩性方面是不好的做法。这些检查是否在服务器端进行。 – 2011-04-22 17:32:25

回答

0

该代码是正确的。

难道是因为您正在检查newName是否在nameArray,但将newClassName推入classnameArrays

如果您仍然遇到问题,请安装Firebug并使用其调试器和交互式控制台来检查您正在处理的值。这通常帮助我找出这种问题。