获取<a> which submitted form</a>的名称

时间:2014-03-07 08:02:34

标签: jquery forms spring-mvc

我使用活动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的值始终为空

2 个答案:

答案 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标记的名称。然后,您可以在服务器端代码中处理它,就像任何其他表单字段一样。