刚学js不久,在这请教大家。
下面这个方法是检测数组allUserName 是否含有username ,若有变量myBoolean为false,若没有myBoolean为true
可是if(allUserName[k] == username) 这个if块始终进不去,
请大家帮忙看看
function check(){
     
        var allUserName = new Array();
        var myBoolean= true;
        var username = document.getElementById("username").value;
        allUserName = document.getElementById("allUserName").value.split(",");
        for(var k=0;k<allUserName.length;k++){
           alert("username--"+username);
           alert("allUserName[k]--"+allUserName[k]);
           if(allUserName[k] == username) {
              myBoolean = false;
           }
           alert("myBoolean--"+myBoolean);
        } 
       
        return myBoolean;    
     }

解决方案 »

  1.   

    代码没问题,应该是你没有满足allUserName[k] == username的数据
      

  2.   

    在if前,将allUserName[k]和username得值都alert出来了
    两个值明明相等的时候也不进if(allUserName[k] == username) {
    }
      

  3.   

    这两个值如果相等,allUserName[k] == username则一定会执行的。你得看看。它们的值相等不。
      

  4.   

    alert一下document.getElementById("allUserName").value 得到值是什么,看看包含“,”吗
      

  5.   

    我试了你的方法, 有2种情况比较可能:
     1、allUserName或username有空格。
     2、allUserName中的","逗号是全角的。希望你注意下
      

  6.   

    为什么要编列呢,看一个效率高的
    function check(){
                 
                                    var myBoolean= true;
                    var username = ","+document.getElementById("username").value;
                    if (document.getElementById("allUserName").value.indexOf(username ) >= 0) {
    myBoolean = true;
    }            else {
    myBoolean = false;
    }  
                    return myBoolean;    
                 }
      

  7.   

    现在找到问题, 正如 fishwet 所有的allUserName[k]中有空格
    allUserName 是从后台的一个list去除[]转过来的,但是每个元素前有个空格
    忽略这个问题了。
    谢谢 warison2008 的建议,