我使用活动a onclick
$("ul > li > a").click(function() {
$("#redirectForm").submit();
});
我的表单看起来像这样
<form action="redirect.html" method="post" role="form" id="redirectForm">
<ul class="nav navbar-nav">
<li class="active"><a href="#" name="mainpage"><span class="glyphicon glyphicon-home"></span> Главная</a>
<li><a href="#" name="mainpage"><span class="glyphicon glyphicon-time"></span> События</a></li>
<li><a href="#"><span class="glyphicon glyphicon-user"></span> Участники</a></li>
<li><a href="#" name="userloginlist"><span class=" glyphicon glyphicon-wrench"></span> Администратор</a>
</ul>
</form>
购买如何获取在我的控制器中向服务器提交表单的a
的名称?
@RequestMapping("/redirect.html")
public String redirect(@RequestParam Map<String, String> allRequestParams,
Model model) {
logger.debug("attempt to redirect");
String next_page = allRequestParams.get("name");
logger.debug("Parameter page: " + next_page);
return "redirect: " + next_page;
}
next_page
的值始终为空
答案 0 :(得分:1)
你可以通过点击监听器中的$(this).attr("name")
获得它
$("ul > li > a").click(function() {
var input = $("<input>")
.attr("type", "hidden")
.attr("name", "mydata").val($(this).attr("name"));
$("#redirectForm").append($(input));
$("#redirectForm").submit();
});
然后,您可以在控制器中访问参数name
答案 1 :(得分:0)
试试这个:
您应该在表单中添加隐藏的HTML字段:
<input type="hidden" id="my_a_tag" value=""/>
将你的JS改为:
$("ul > li > a").click(function() {
$("#my_a_tag").prop("value", $(this).prop("name"));
$("#redirectForm").submit();
});
这会将隐藏字段的值设置为所点击的a
标记的名称。然后,您可以在服务器端代码中处理它,就像任何其他表单字段一样。