myname是字符串,用eval()调用一下,不过你的myname这样定义不太好吧

解决方案 »

  1.   

    var arrname4=["url1","url2","url3","url4","url5","url6","url7","url8","url9"];
    var res = false;
    for(var i=0;i<arrname4.length;i++){
      if(document.myform[arrname4[i]]&&document.myform[arrname4[i]].value == "")res = true;
    }
    if (res) return;
      

  2.   

    //这个标志用来判断是否return
    var arrflag=false;
    //首先判断是否count>8
    arrflag=( count > 8 ) ? true : false;
    //小于等于8时继续判断
    if( !arrflag )
    {
    var arrname4=["url1","url2","url3","url4","url5","url6","url7","url8","url9"];
    var myname='';
    for(var i=0;i<arrname4.length;i++)
    {
    iobj = eval("document.myform."+arrname4[i]);
    ivalue = (iobj) ? iobj.value : "";
    //为0时不需要判断对象是否存在
    if (i==0)
    iflag = (ivalue == "") ? true : false;
    else
    iflag = ( iobj && (ivalue == "") ) ? true : false;

    arrflag = ( iflag ) ? true : false;
    if (arrflag)
    return;
    }
    }
    else
    return;
      

  3.   

    var arrname4=["url1","url2","url3","url4","url5","url6","url7","url8","url9"];
    var myname=false;
    for(var i=0;i<arrname4.length;i++)
    {
    myname |= (document.myform[arrname4[i]]&&document.myform[arrname4[i]].value == "")
    }if(count > 8|| document.myform.url0.value=="" || myname) return;
    改是这样改,但是执行语句比原来的多了,就是效率低了
      

  4.   

    这样顺序和原来比较相似
    if(count > 8||document.myform.url0.value=="")return;
    for(var i=1;i<=9;i++)
    {
      var obj=document.myform["url"+i];
      if(obj&&obj.value=="")
        return;
    }