【发布时间】:2019-09-14 02:17:52
【问题描述】:
我有一个带有 3 个单选按钮的表单,当按下某个单选按钮时,我想向控制器发送单选按钮的值和我从控制器发送到视图的 Id 变量。
HTML 视图如下所示:
<form id="form" th:action="@{/buscarEmpresa}">
<input type="radio" name="filtro" value="dia" onclick="submitForm()"> Día
<input type="radio" name="filtro" value="mes" onclick="submitForm()"> Mes
<input type="radio" name="filtro" value="ano" onclick="submitForm()"> Año
</form>
当某些单选按钮被按下时,我在<script> 标签中使用以下 js 代码:
function submitForm(){
document.getElementById("form").submit();
}
控制器如下所示:
@GetMapping("/buscarEmpresa")
public ModelAndView buscarEmpresa(@RequestParam(name = "empresas", required = false) Integer id,
@RequestParam(name="filtro", required = false) String filtro) {
ModelAndView mav = new ModelAndView(ViewConstant.DASHBOARD_3);
mav.addObject("nombreEmpresa", (empresaRepository.getEmpresaByIdEmpresa(id)).getNombre());
sendEntradas(mav, id);
sendSalidas(mav, id);
mav.addObject("empresas", empresaRepository.findAll());
mav.addObject("idEmpresa", id);
return mav;
}
我尝试将th:action 更改为这样的:
th:action="@{/buscarEmpresa?empresas=__${idEmpresas}__}"
idEmpresas 是我从控制器发送的 id 值,我想重新发送它,但是当我提交表单时,它只发送单选按钮的值。我该如何解决这个问题?我使用 Spring Boot 和 Thymeleaf 作为模板引擎。
【问题讨论】:
-
id 是从哪里来的?您是否尝试过在包含 id 的表单中添加隐藏的输入字段?
-
首先我在下拉列表中获取元素的 id 并将其发送到控制器,接下来我将 id 从控制器发送到上面 buscarEmpresa 方法中的新视图,我想将其重新发送到控制器以使用单选按钮和 id 的选择来更新视图
-
能否在原始视图中为选定的 id 添加隐藏元素?
<form id="form" ...> <input type="hidden" id="empresasId" name="empresasId" value="<empresasId_value_from_select>"> <input type="radio" name="filtro" ...> ... </form> -
但是如果我添加隐藏的输入,在提交表单时它会发送选定的单选按钮和该输入中的 id?
-
它与隐藏输入一起工作!非常感谢:)
标签: javascript java spring spring-boot spring-mvc