0
我有一个带有按钮的表单,该按钮将动态添加一组具有相同表单的输入。将具有相同名称的单选按钮传递给servlet
我已经设法完成,除了一个问题。
我无法每次添加字段时将相同名称的无线电输入类型的参数传递给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");
打印出上述各字符串数组的长度,和我2为每个参数的除了idtype其长度是1.
所有的动态参数已包含在窗体内。
我同意。另一种方法是在每个组的字段名称末尾添加一个索引,例如, idtype0,idtype1等 –
谢谢@Neo Kabuto。基本上这些输入字段将按用户需要动态添加。我使用其他名称重命名了输入,但仅在添加一次输入时才起作用。 添加索引是一个好主意,但我如何在动态添加元素上做到这一点? – user3790782
@ user3790782您可能只想使用最简单的解决方案,并拥有一个全局变量,用于跟踪您添加的输入组的数量。然后,您只需要更改代码,将该值插入到您添加到文档中的每个“”的“名称”的末尾。 –