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为不定数值)