`

多组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 = $('<tr></tr>');
var timestampstr = new Date().getTime();
$row2.append('<td class="lefttitle2">性別</td>');
$row2.append('<td><input type="radio" name="aplgender'+timestampstr+'"  checked="checked" value="1"  rdflag="gender" />男<input type="radio" name="aplgender'+timestampstr+'" value="0"  rdflag="gender" />女<span style="color:red;">※必須</span></td>');
$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

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics