java将同名单选按钮传递给servlet
我有一个带有按钮的表单,它将动态添加同一表单的一组输入
我已经设法完成了,除了一个问题
每次添加字段时,我都无法将相同名称的radio输入类型中的参数传递给servlet。它只将值传递给servlet一次。奇怪的是我可以成功地传递文本输入类型
或者是否有其他方法将值从单选按钮传递到servlet
代码如下:
<script type="text/javascript">
$(document).ready(function(){
var counter = 2;
$("#addDynamicDivs").click(function () {
var newTextBoxDiv1 = $(document.createElement('div'))
.attr("id", 'TextBoxDiv1');
newTextBoxDiv1.attr("style",'float: left;');
var newTextBoxDiv2 = $(document.createElement('div'))
.attr("id", 'TextBoxDiv2');
newTextBoxDiv2.attr("style",'float: left;');
var newTextBoxDiv3 = $(document.createElement('div'))
.attr("id", 'TextBoxDiv3');
newTextBoxDiv3.attr("style",'float: left;');
var newTextBoxDiv4 = $(document.createElement('div'))
.attr("id", 'TextBoxDiv4');
newTextBoxDiv4.attr("style",'float: left;');
newTextBoxDiv1.after().html('<label>Speaker Name : </label>' +
'<input type="text" name="speakername" id="speakername" value="" >');
newTextBoxDiv2.after().html('<label>Speaker Country : </label>' +
'<input type="text" name="speakercountry" id="speakercountry" value="" >');
newTextBoxDiv3.after().html('<label>Speaker Company : </label>' +
'<input type="text" name="speakercompany" id="speakercompany" value="" >');
newTextBoxDiv4.after().html('<label>ID Type: </label>' +
'<ul name="idtype class="forms-list">'+
'<li><input type="radio" name="idtype" id="idtype" value="New ID">'+
'<label for="New ID">New ID</label></li>'+
'<li><input type="radio" name="idtype" id="idtype" value="Old ID">'+
'<label for="Old ID">Old ID</label></li></ul>');
newTextBoxDiv1.appendTo("#TextBoxesGroup");
newTextBoxDiv2.appendTo("#TextBoxesGroup");
newTextBoxDiv3.appendTo("#TextBoxesGroup");
newTextBoxDiv4.appendTo("#TextBoxesGroup");
});
});
从servlet中,通过以下代码检索参数:
String[] speakername = request.getParameterValues("speakername");
String[] speakercountry = request.getParameterValues("speakercountry");
String[] speakercompany = request.getParameterValues("speakercompany");
String[] idtype = request.getParameterValues("idtype");
我打印出上面每个字符串数组的长度,除了长度为1的idtype之外,每个参数都有2个
表单中已包含所有动态参数
# 1 楼答案
单选按钮通常只发送请求组中的一个值。根据设计,只能从组中选择一个单选按钮。如果向表单中添加了多个同名单选按钮,则在提交表单时,浏览器仍应仅传递组的一个选定值
如果希望传递多个此表单,最好区分动态添加的表单(看起来您希望所有数据一起发送,因此需要在每个
<input>
元素的名称中添加唯一标识符,但是最好将它们放在单独的<form>
中)。我不建议依赖浏览器在同一个<form>
中传递多个具有相同name
的<input>