假定一表单有两上密码文本框的值分别为:pwone,pwtwo;现在要判断两次输入的密码是否一致:
方法1:if(pwone!=pwtwo)
       {
        alert("两次输入的密码不一样,请重输入!");
       }
这个是比较容易理解,且最直观的一个好方法了!
方法2:if(pwtwo.indexOf("pwone",0)==-1)
     {
        alert("两次输入的密码不一样,请重输入!");
      }
但是这个却行不通,是我对这个indexOf()方法理解有什么不对吧!
新手刚上路,恳请各大哥大姐多多指点!多谢!

解决方案 »

  1.   


    if(pwtwo.indexOf(pwone,0)==-1)    //不要加引号
         {    
            alert("两次输入的密码不一样,请重输入!");    
          }   
    }   pwtwo.indexOf(pwone,0)从句子知:pwtwo将包含pwone,即
    如果 pwone=123,pwtwo=1234,也会通过,
    所以在此不要这么用。
      

  2.   

    为此处要写成:if(pwtwo.indexOf(pwone,0)==-1)?
    是不是因为:pwtone=document.myform.password1.value;
    也就是说是一个定义的变量,还是别的原因?
    要是判断pwtwo是否包含字符串"abc"
    if(pwtwo.indexOf("abc",0)==-1)
    {
      alert("此处没有abc");
    }
    是不是这样写就没有问题了?请详细说一下,多谢了!
      

  3.   

    indexOf 方法
    返回 String 对象内第一次出现子字符串的字符位置。 strObj.indexOf(subString[, startIndex])参数
    strObj必选项。String 对象或文字。subString必选项。要在 String 对象中查找的子字符串。starIndex可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。说明
    indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。 如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 从左向右执行查找。否则,该方法与 lastIndexOf 相同。示例
    下面的示例说明了 indexOf 方法的用法。function IndexDemo(str2){
       var str1 = "BABEBIBOBUBABEBIBOBU"
       var s = str1.indexOf(str2);
       return(s);
    }
    <!--如查传进来的是"A"那么返回的就是"1",如果传进来的是"87879"那么就是没找到就返回"-1"-->