gpt4 book ai didi

java - 将同名的单选按钮传递给 servlet

转载 作者:行者123 更新时间:2023-12-03 12:17:27 26 4
gpt4 key购买 nike

我有一个带有按钮的表单,可以动态添加一组相同表单的输入。

除了一个问题之外,我已经设法完成了它。

每次添加字段时,我无法将具有相同名称的 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。

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

最佳答案

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

如果您想传递多个此表单,则最好区分动态添加的表单(看起来您希望将所有数据一起发送,因此您需要添加一个唯一标识符每个 <input> 元素的名称,但最好将它们放在单独的 <form> 中)。我不建议依赖浏览器传递多个 <input>具有相同的 name同样<form> .

关于java - 将同名的单选按钮传递给 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com