目前我有2中方法。如下面介绍
var strTmp = document.getElementById(obj).value;
 for(var loopi = 0;loopi < strTmp.length; loopi++) 
{  
     if(strTmp.charCodeAt(loopi) > 256)  
     {
   return false;
   }
          else
  {       
       return true;
   }
}
------------------------------------------------------------------》
var p = /[^\u0000-\u00FF]/;
var s = document.getElementById(obj).value;
if (p.test(s))
{ return false;
}  else 
{

return true;

}以上2中方法在MAC系统下的safari2.0浏览器军不好用。请教其他的判断输入半角的方法。在线等--紧急~~

解决方案 »

  1.   

    其他浏览器是对的?var strTmp = document.getElementById(obj).value;
    for(var loopi = 0;loopi < strTmp.length; loopi++)

        if(strTmp.charCodeAt(loopi) > 256) 
        {
             return false;
        }
    }
    return true;
    ------------------------------------------------------------------》
    var p = /^[^\u0000-\u00FF]*$/;
    var s = document.getElementById(obj).value;
    return !p.test(s);
      

  2.   

    对的。其他浏览器。firefox2.0.firefox3.0
    IE6---IE8。safari3.0都好用
    等下。我实验一下加$这个,把代码放在MAC机器在实验下~~
      

  3.   

    var strTmp = document.getElementById(obj).value;
    alert(strTmp);//这个值可以打出来吗?
      

  4.   

    都可以打出来。
    估计是MAC系统的事。。因为我用的是safari2.0这个浏览器本身就很多bug。我先实验。现在清空浏览器缓存。。还清空不了。还一直访问久的代码。气死我了。
      

  5.   

    测试出结果了。无论我输入半角还是全角。
    p.test(s)这个值总是true。。真奇怪请问大家还有其他验证半角的方法咩?
      

  6.   

    if(strTmp.charCodeAt(loopi) > 256)
    这句不是根据ASCII码判断的吗,找出这些字符,然后可以放在一个变量中
    比如
    var halfW = "..abcd...";//这里收录了ASCII小于等于256的所有字符
    if(halfW.indexOf(strTmp.charAt(loopi))>=0){
    //半角
    }else{
    //全角
    }
      

  7.   

    关键是
    var strTmp = document.getElementById(obj).value; 
    for(var loopi = 0;loopi < strTmp.length; loopi++) 
    {  
        if(strTmp.charCodeAt(loopi) > 256)  
        { 
      return false; 
      } 
              else 
    {      
        return true; 
    } 这个方法也不好用啊~~~在苹果系统下的safari2.0不好用。
      

  8.   

    可以的呀
    var strTmp = document.getElementById(obj).value; 
    var halfW = "abcdefghijklmnopqrstuvwxyz";//a-z对应的ASCII是97-122,其他的LZ自己加上,一共256种字符,在此范围内都是半角,除此以外都是全角
    for(var loopi = 0;loopi < strTmp.length; loopi++) 
    {  
        if(halfW.indexOf(strTmp.charAt(loopi)) < 0)//全角  
        { 
      return false; 
      } 
              else 
    {      
        return true; 
    }ASCII码字符表:http://www.weste.net/tools/ASCII.asp
      

  9.   

    出结果了
    原来var strTmp = document.getElementById(obj).value; 
    for(var loopi = 0;loopi < strTmp.length; loopi++) 
    {  
        if(strTmp.charCodeAt(loopi) > 256)  
        { 
      return false; 
      } 
              else 
    {      
        return true; 

    这个方案是好用的。只是输入框为空时,没有判断当字符串的length为0时,需要return true。十分感谢大家。