我的jsp页面,有下面的radio:<%s=0;%><input type="radio" name='sigspecicheckbox"+<%=s%>+"' id="<%=i%> />"
注:里面的s是没加一个radio就自增一下,这样那么的值就不同了,我没列出来,然后在js里面用:
 alert(document.getElementsByName("sigspecicheckbox0").length);
这样打印输出的总是0,而我的radio明明是有多个的。请高手赐教~!~!

解决方案 »

  1.   

    <%s=0;%><input type="radio" name='sigspecicheckbox' value="<%=i%>" />alert(document.getElementsByName("sigspecicheckbox").length);正确的使用方法
      

  2.   

    以下输出的是1. 最终生成的html代码看下<script type='text/javascript'>
    function a(){
      alert(document.getElementsByName("sigspecicheckbox0").length);
    }
    </script>
    <input type="radio" name='sigspecicheckbox0'> 
    <button onclick='a()'>click</button>
      

  3.   

    我是用了一个for循环,循环生成多个radio的,radio的name属性,我想动态的加个后缀,以实现name不同。上面写的几个,name都是固定死的,能举个活的例子吗
      

  4.   

    for(int j=0;j<tydan.length;j++){
    %>    
    <input type="radio"  name='sigspecicheckbox"+<%=s%>+"' id=<%=i%> value="<%=tydan[j]%>"><%=specpara.getParametersCH()[Integer.valueOf(tydan[j])]%>
     
    <%}%>var test = document.getElementsByName("sigspecicheckbox0");
    alert(test.length);
    里面的name本来是"sigspecicheckbox"+i的,我是为了测试,输出第一个看下,怎么得到的是0????
      

  5.   

    你调试的客户端代码。服务器端代码混在一起调试。
    直接调试最终生成的HTML代码就可以找到问题了,然后再根据结果调试服务器端的代码。
      

  6.   

    主要是:
     name='sigspecicheckbox"+<%=s%>+"'
    这样写属性对吗,name是动态变的
    而js获取:var i;
    for(i =0;i<3;i++){
    var test = document.getElementsByName("sigspecicheckbox"+i);
        alert(test.length);
    }
    这样怎么输出的都是0,该怎么写才能获得
      

  7.   

    如果radio的name都不一样,用户是无法使用的,点击之后是不能取消的。
    你的 做法不符合习惯
      

  8.   

    把你的代码贴出来哦。用这个eval去得到name的值哦。
    如var iname = eval("sigspecicheckbox"+i);
    alert(iname);
    看下效果哦。
      

  9.   

    jsp部分代码:int s = 0;
    for(int i=0;i<catepro.length;i++){
    SpecificParameter specpara = splist.get(i);
    //判断是否存在这种类型的,无就创建隐藏
    if(paratype[i] == '1' )flag1 = true;
        if(paratype[i] == '2' )flag2 = true;
        if(paratype[i] == '3' )flag3 = true;
    %>
    <%if(vpara[i] != null && !vpara[i].equals("")){ 
    out.println(catepro[i]);
    if(paratype[i]=='1'){
    s++;
    String tydan[] = vpara[i].split("&");
    for(int j=0;j<tydan.length;j++){
    %>    
    <input type="radio"  name='sigspecicheckbox"+<%=s%>+"' id=<%=i%> value="<%=tydan[j]%>"><%=specpara.getParametersCH()[Integer.valueOf(tydan[j])]%>
     js代码:var i;
    for(i =0;i<3;i++){
    var test = document.getElementsByName("sigspecicheckbox"+i);
        alert(test.length);
    }9楼的,我按照你那个代码,没任何输出哦
      

  10.   

    原来是name='sigspecicheckbox"+<%=s%>+"'这里写错了,应该是:
    name='sigspecicheckbox<%=s%'散分了