例如,如果我选择单选按钮 1 并按下提交按钮,我想调用 Controller 1,选择单选按钮 2,然后按下按钮 2 调用 Controller 2。
下面是我试过的方法。首先有两个 Controller 。
@RequestMapping(value="/ynto10", method=RequestMethod.POST)
public String ynto10(HttpServletRequest req, HttpServletResponse res) {
String[] columns = req.getParameterValues("chkValue");
System.out.println(columns.length);
analyticsService.ynTo10(columns);
return "redirect:/analytics/info/1";
}
@RequestMapping(value="/nulltoN", method=RequestMethod.POST)
public String nulltoN(HttpServletRequest req) {
String[] columns = req.getParameterValues("chkColnames");
analyticsService.nullToN(columns);
return "redirect:/analytics/info/1";
}
这是尝试根据单选按钮选择用ajax调用 Controller 。
$('#convert').click(function() {
var chkVal = [];
$('input[name=chkColnames]:checked').each(function() {
chkVal = $(this).val();
});
if($('#ynTo10:selected')) {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/destiny/ynto10',
data: {
chkValue : chkVal
},
dataType: 'json',
success: alert('변환 OK'),
})
}else if($('#nullToN:selected')) {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/destiny/nulltoN',
data: {
chkValue : chkVal
},
dataType: 'json',
success: alert('변환 OK'),
})
}
我想在名为 chkVal 的变量中添加一个复选框。如果你能把这部分给我,我将不胜感激。祝你有美好的一天。
最佳答案
您需要将数据推送到数组以获取所有选定的值
$('input[name=chkColnames]:checked').each(function() {
chkVal.push($(this).val());
});
其次,您不能直接从 ajax 页面重定向,
在 ajax 调用的成功函数中使用 js 重定向
success: function(data) {
window.location = "/analytics/info/1";
}
或者最好放弃ajax并使用简单的get请求
关于javascript - 单击单选按钮时,我想用 Ajax 调用 Spring MVC 的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607412/