多组radiobox提交时后台的获取的情况及处理

在HTML标签或者js生成的页面代码中,有时需要提交多组单选按钮,比如一个页面提交多个人员的基本信息:


姓名:

性别单选:男, 女

年龄:



姓名:

性别单选:男, 女

年龄:


 对于“姓名”和“年龄”字段使用文本框可以使用相同的"name"字段,这样在提交在后台处理时可以使用:

 

String[] aplnames = request.getParameterValues("aplname");
String[] aplage = request.getParameterValues("aplage ");

 但是,对于性别,由于'name'属性相同的表示一组内容,如果这里radio的'name'属性都设成一样的,那么两个人员共4个radiobox却只能选一个为checked状态,显然是不行的;只能把一个人员信息性别的两个radiobox设为一组,这两个radio的‘name’设为相同并区别于其他人员的radiobox的‘name’属性。

 

 

如下js代码部分实现,每组radio随机定义'name'属性,后台要知道这raidobox的属性名可以有很多方法,强制改名,或者以一定规律命名(因为是动态生成标签,存在随意删除和增加人员的情况,这里是在提交前强制改名了)。

最重要的是html http提交时一组radiobox实际上只是提交了属性checked为选中的radiobox。

 

前台js:

 

var $row2 = $('');
var timestampstr = new Date().getTime();
$row2.append('性別');
$row2.append('※必須');
$table1.append($row2);

 

后台java:

String[] aplnames = request.getParameterValues("aplname");
for (int i = 0; i < appnum; i++) {//人员总数循环
	String[] rds = request.getParameterValues("aplgender_"+ i);
	log.info("aplgender_"+ i + ", " + Arrays.asList(rds).toString());
	String tmp = "[RADIOS] ";
	for (int j = 0; j < rds.length; j++) {
		tmp += rds[j];
	}
	log.info(tmp);
}

 前台提交了3个人员信息后,后台的 日志显示每个人员的radiobox提交后只是得到了选中的那个,并没有把每组(男、女)的radiobox都提交上来:

 - [ INFO ]  aplgender_0, [0]
 - [ INFO ]  [RADIOS] 0
 - [ INFO ]  aplgender_1, [1]
 - [ INFO ]  [RADIOS] 1
 - [ INFO ]  aplgender_2, [1]
 - [ INFO ]  [RADIOS] 1

 

 

你可能感兴趣的:(编程语言)