[英]Send multiple selected checkboxes to Java using jQuery/Ajax
I am trying to send multiple selected checkboxes from html using jQuery/Ajax to Java. 我正在尝试使用jQuery / Ajax从HTML发送多个选定的复选框到Java。 When I display the result in Java I get "activityRangeCBs[]" instead of the values I selected (ie, National, State).
当我在Java中显示结果时,我得到的是“ activityRangeCBs []”,而不是我选择的值(即“国家”,“州”)。
The HTML is: HTML是:
<div class="controls col-lg-10 col-md-10 col-sm-9 col-xs-8">
<label class="checkbox-inline" for="activityRange1"><input type="checkbox" value="National" id="activityRangeCBs" name="activityRangeCBs[]">National</label>
<label class="checkbox-inline" for="activityRange2"><input type="checkbox" value="State" id="activityRangeCBs" name="activityRangeCBs[]">State</label>
<label class="checkbox-inline" for="activityRange3"><input type="checkbox" value="Region" id="activityRangeCBs" name="activityRangeCBs[]">Region</label>
<label class="checkbox-inline" for="activityRange4"><input type="checkbox" value="District" id="activityRangeCBs" name="activityRangeCBs[]">District</label>
<label class="checkbox-inline" for="activityRange5"><input type="checkbox" value="Group" id="activityRangeCBs" name="activityRangeCBs[]">Group</label>
<label class="checkbox-inline" for="activityRange6"><input type="checkbox" value="Section" id="activityRangeCBs" name="activityRangeCBs[]">Section</label>
</div>
The jQuery/Ajax is: jQuery / Ajax是:
var activityRangelist = '';
for (i = 0; i < activityRangeCBs.length; i++) {
if (activityRangeCBs[i].checked === true) {
if (activityRangelist.length > 0) {
activityRangelist += ',';
}
activityRangelist += activityRangeCBs[i].name;
}
}
var dataToBeSent = {
activityRangeCBs: activityRangelist,
}; // you can change parameter name
$.ajax({
url : 'E1ActivityCreateView', // Your Servlet mapping or JSP(not suggested)
data : dataToBeSent,
type : 'POST',
})
The Java is: Java是:
String activityRangeCBs = request.getParameter("activityRangeCBs"); // From Local Storage
Sring System.out.println("activityRangeCBs: " + activityRangeCBs);
check this working code 检查此工作代码
just change this line of code activityRangelist += activityRangeCBs[i].name; 只需更改此代码行activityRangelist + = activityRangeCBs [i] .name; to activityRangelist += $(activityRangeCBs[i].parentNode).text();
到activityRangelist + = $(activityRangeCBs [i] .parentNode).text();
$(document).ready(function () { $('#submit').click(function () { var activityRangelist = ''; for (i = 0; i < activityRangeCBs.length; i++) { if (activityRangeCBs[i].checked === true) { if (activityRangelist.length > 0) { activityRangelist += ','; } activityRangelist += $(activityRangeCBs[i].parentNode).text(); } } var dataToBeSent = { activityRangeCBs: activityRangelist, }; // you can change parameter name console.log(dataToBeSent); $.ajax({ url: 'E1ActivityCreateView', // Your Servlet mapping or JSP(not suggested) data: dataToBeSent, type: 'POST', }) }); });
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <div class="container"> <div class="controls col-lg-10 col-md-10 col-sm-9 col-xs-8"> <label class="checkbox-inline" for="activityRange1"><input type="checkbox" value="National" id="activityRangeCBs" name="activityRangeCBs[]">National</label> <label class="checkbox-inline" for="activityRange2"><input type="checkbox" value="State" id="activityRangeCBs" name="activityRangeCBs[]">State</label> <label class="checkbox-inline" for="activityRange3"><input type="checkbox" value="Region" id="activityRangeCBs" name="activityRangeCBs[]">Region</label> <label class="checkbox-inline" for="activityRange4"><input type="checkbox" value="District" id="activityRangeCBs" name="activityRangeCBs[]">District</label> <label class="checkbox-inline" for="activityRange5"><input type="checkbox" value="Group" id="activityRangeCBs" name="activityRangeCBs[]">Group</label> <label class="checkbox-inline" for="activityRange6"><input type="checkbox" value="Section" id="activityRangeCBs" name="activityRangeCBs[]">Section</label> <button id="submit">Submit</button> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.