Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将具有相同名称的单选按钮传递给servlet_Java_Javascript_Jsp_Servlets - Fatal编程技术网

Java 将具有相同名称的单选按钮传递给servlet

Java 将具有相同名称的单选按钮传递给servlet,java,javascript,jsp,servlets,Java,Javascript,Jsp,Servlets,我有一个带有按钮的表单,它将动态添加同一表单的一组输入 我已经设法完成了,除了一个问题 每次添加字段时,我都无法将相同名称的radio输入类型中的参数传递给servlet。它只将值传递给servlet一次。奇怪的是我可以成功地传递文本输入类型 或者是否有其他方法将值从单选按钮传递到servlet 代码如下: <script type="text/javascript"> $(document).ready(function(){ var counter = 2; $("#addDy

我有一个带有按钮的表单,它将动态添加同一表单的一组输入

我已经设法完成了,除了一个问题

每次添加字段时,我都无法将相同名称的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");


});
我打印出上面每个字符串数组的长度,除了长度为1的idtype之外,每个参数都有2个


所有动态参数都已包含在表单中。

单选按钮通常只会在请求时从组中发送一个值。根据设计,只能从组中选择一个单选按钮。如果向表单中添加了多个同名单选按钮,则在提交表单时,浏览器仍应仅传递组的一个选定值


如果希望传递多个此表单,最好区分动态添加的表单(看起来您希望所有数据一起发送,因此需要在每个
元素的名称中添加唯一标识符,否则最好将它们放在单独的
中)。我不建议依赖浏览器在同一个
中传递多个
名称相同的
我同意。另一种方法是在每个组的字段名末尾添加索引,例如idtype0、idtype1等。谢谢@Neo Kabuto。基本上,这些输入字段将根据用户需要动态添加。我用其他名称重命名了输入,但仅当我添加这些输入一次时,它才起作用。添加索引是一个好主意,但如何在动态添加的元素上做到这一点?@user3790782您可能只想使用最简单的解决方案,并使用一个全局变量来跟踪您添加了多少输入组。然后,您只需要更改的代码,以便在添加到文档中的每个
名称的末尾插入该值。
String[] speakername    = request.getParameterValues("speakername");
String[] speakercountry = request.getParameterValues("speakercountry");
String[] speakercompany = request.getParameterValues("speakercompany");
String[] idtype         = request.getParameterValues("idtype");