JS名称+变量的写法,这样对吗,应该怎么写,帮改一下哦

  var namestr = form1.username.value;
 var strs= new Array(); //定义一数组 
 var strs = namestr.split(",");
 var y =0 ;
 var ystr ;
 for (i=0;i<strs.length ;i++ ) 
{  y=++y ;
   ystr="_"+y;
  if(strs[i]=="") 
{
 alert("没有填写姓名!");
  form1.username+ystr+.focus();    
    // 我想让光标切换到 form1.username_1.focus();  form1.username_2.focus();  这样的变量,但这里 ystr 这样写会有错。
  return false;
 } 
} 

 <input type="text" name="username" id="username_1" value="姓名1"/>
 <input type="text" name="username" id="username_2" value="姓名2" />
 <input type="text" name="username" id="username_3" value="姓名3 "/>
 ...........
 <input type="text" name="username" id="username_N" value="姓名N "/>   
(这个输入框是随时生成的,N为不定数值)


用[]操作符,不能用点,用点需要eval过才行

 form1['username'+ystr].focus();

或者

eval('form1.username'+ystr+'.focus()')

不对啊,你这句话,又不是字符串?怎么能加?

var namestr = form1.username.value;
var strs= new Array(); //定义一数组
var strs = namestr.split(",");
var y =0 ;
var arr=new Array(form1.username_1,form1.username_2);
for (i=0;i<strs.length ;i++ )
{ y=++y ;

if(strs[i]=="")
{
alert("没有填写姓名!");
arr[i].focus();
return false;
}
}

应该先放在数组中,然后通过下表访问到元素后再调用focus方法

现在问题是 不止 username_1,username_2, 可能还会有 username_3,username_4....... 这个数字不固定

这是下方HTML的代码

 <input type="text" name="username" id="username_1" value="姓名1"/>
 <input type="text" name="username" id="username_2" value="姓名2" />
 <input type="text" name="username" id="username_3" value="姓名3 "/>
 ...........
 <input type="text" name="username" id="username_N" value="姓名N "/>   
(这个输入框是随时生成的,N为不定数值)