如何在jsp页面里获取动态生成的不同名称的radio的值?

如何在jsp页面里获取动态生成的不同名称的radio的值?

问题描述:

大家好~我有个问题要求助~
我在做一个在线评分系统,在生成评分表的页面中用c标签输出了一组带有radio的分值,
代码和截图如下:
图片说明
图片说明

然后${index}是一个包含多个IndexVoValue对象的list;
IndexVoValue的部分定义如下:
public class IndexVoValue
{
private String qid;

private String question;
private String eid;
private List indexoption;
}

由于每一组的radio值都不一样,所以不能用js的document.getElementsByName("name")。。所以还能用什么办法呢?求助各位大神,拜谢~!

通过遍历tr获取每行里面的radio,你每行的radio的name不都是一样的

     function getRadioKV() {
        var tb = document.getElementById('你的table的id'), s = '', ipts, sel;
        for (var i = 0; i < tb.rows.length; i++) {
            ipts = tb.rows[i].getElementsByTagName('input');
            if (ipts.length == 0) continue; //表头或者没有选项的行退出
            sel = false;
            for (var j = 0; j < ipts.length; j++) {
                if (ipts[j].checked) {
                    s += '&' + ipts[j].name + '=' + ipts[j].value;
                    sel = true;
                    break;
                }
            }
            if (!sel) { //这行没有选中radio提示
                alert(tb.rows[i].cells[1].innerHTML + '没有选择!');
                ipts[0].focus();
            }
        }

        return s.substring(1);
    }
    var s = getRadioKV();
    alert(s)

你最好给他们都定义一个id,这样根据id直接就能找到,否则,只能找到这一类元素,然后再判断其它特征去确定

动态id除非你能知道他的规律,否则不能确定。

jsp里面的代码怎么不显示了。。重新粘一次,是这样的:


${index.qid}
${index.question}


${option.content}&nbsp&nbsp

${value.value}分 &nbsp&nbsp

/c:forEach



/c:forEach



/c:forEach

一般获取一组数是用数组加下标来命名的如

 <input type="radio" name="list[0].id" />
  <input type="radio" name="list[1].id" />

看了一下,自己的理解是,选中其中一个input提交数据,但是你却无法指定某一个,我理解的对么?

我看你并没有设置id呀,我觉得还是选中编号比较好,你可以拿每条数据的编号作为id,id = “XXX”

看看行不行,

换了一种写法,用java代码把分值取出来,并把每道题放在一个form里面,form的命名使用“一个常量+一个递增变量”的形式,然后让所有radio的name都相同。取值就在js中用form的名称取radio的value值,这样的逻辑应该没问题吧?
但是我对js不熟悉,不知道在js中怎样把取到的多个value值传到后台去,求问js里面应该怎么写~~!
图片说明
图片说明