天啊啊啊啊
2017-05-27 15:53
采纳率: 50%
浏览 891

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


  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 已采纳

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

     form1['username'+ystr].focus();
    
    或者
    
    eval('form1.username'+ystr+'.focus()')
    
    打赏 评论
  • 蓝月心语 2017-05-27 18:27

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

    打赏 评论
  • 蓝月心语 2017-05-27 18:31

    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;
    }
    }

    打赏 评论
  • 蓝月心语 2017-05-27 18:38

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

    打赏 评论
  • 天啊啊啊啊 2017-05-28 05:10

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

    打赏 评论
  • 天啊啊啊啊 2017-05-28 05:19

    这是下方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为不定数值)
    
    
    打赏 评论

相关推荐 更多相似问题