各位好,我定义了个F为全局变量,当checkbox有选择时,F=true,并跳出循环体,结果我在循环体外取不了F值,即使Checkbox有选择,F仍然为false,急死我,我把break去掉,程序运行是成功的,即有选择,F便标记为true,便为什么有break;F便取值失败呢?难道在break之前,true还没赋值给全局变量F吗?急急求救
function DelAllConfirm()
{
   var F=false;
   var elem=document.Form1.getElementsByTagName("input"); 
   for( var i=0;i<elem.length;i++ )
   {
        if(elem[i].type.toLowerCase() == "checkbox")
        {    
          if(elem[i].checked==true)
          F=true; 
          break;                
        }
    }
  alert("控件id名称:"+F+"   name属性");   
}

解决方案 »

  1.   

    var a=true;
    for( var i=0;i<6;i++ )
    {
      if(i==3){
        a=false;
        break;
      }
    }
    alert("v"+a+"111")没有问题
      

  2.   

    if(elem[i].type.toLowerCase() == "checkbox")
    {
    if(elem[i].checked==true)
    F=true;
    break;
    }
    等价于
    if(elem[i].type.toLowerCase() == "checkbox")
    {
    if(elem[i].checked==true)
    {
    F=true;
    }
    break;
    }???
      

  3.   


    楼主的break;语句在if之外了。你的 if 和 else 语句之间有多条语句。在 if 和 else 之间的语句需要大括号。if(elem[i].checked==true){
              F=true; 
              break; 
    }
      

  4.   

    if(condition)
    {
        语句体;
    }
      

  5.   

    var F=false //定义F为全局变量
    function DelAllConfirm()
    {
       //var F=false; //定义F为局部变量
       var elem=document.Form1.getElementsByTagName("input"); 
       for( var i=0;i<elem.length;i++ )
       {
            if(elem[i].type.toLowerCase() == "checkbox")
            {    
              if(elem[i].checked==true)
              F=true; 
              break;                
            }
        }
      alert("控件id名称:"+F+"   name属性");   
    }
      

  6.   

    var F=false;
    你在函数里再定义了一个F,全域变量被"挡"上了
      

  7.   

    var F=false;//这样不是全局变量
      

  8.   

    function DelAllConfirm()
    {
       var F=false;
    这个F好象不是全局变量把。主要问题
    woneinwy(★★★★★★★★★★@しǒひê) ( ) 信誉:100
    已经说得很清楚了。