将javascript变量传递给gsp g:link标记

时间:2013-04-12 23:38:20

标签: javascript grails gsp

我希望在g:link gsp标记的id字段中传递一个javascript变量,但不知道该怎么做。如果我以错误的方式解决这个问题,请告诉我。

这就是我所拥有的:

  • 每个行都有我要在g:link
  • 中传递的id的表
  • javascript表示行的onClick设置了一个带有行id
  • 值的javascript变量


    <r:script disposition="head">
      var data = -1;
      $(document).ready(function () {
        $('#${tableId} tr').click(function (event) {
          data = $(this).attr('id');
        });
      });
    </r:script>

  • 然后我想将javascript data变量传递给g:link

    <li><g:link controller="filterIntraday" action="show" id="??????">View</g:link></li>

我无法让这个工作。如何在gsp标记中设置javascript变量。或者在g:link标记中传递客户端变量的另一种方法是什么?

感谢。

2 个答案:

答案 0 :(得分:3)

如何更改事件函数中的“href”属性:

function (event) {
    data = $(this).attr('id');
    $("link-selector").attr("href", "${createLink(controller: 'filterIntraday', action: 'show')}/" + data);
}

答案 1 :(得分:3)

您无法在gsp标记中设置ID,因为标记已处理完毕。你可以做的是改变生成的html的href。为此,您需要为<a>元素分配一个ID。

<li><g:link controller="filterIntraday" action="show" elementId="linkToFilter">View</g:link></li>

这将创建类似:

<li>a<a href='yourapp/filterIntraday/show' id="linkToFilter" /></li>

然后在你的javascript中你可以改变href:

data = $(this).attr('id');
$link = $('#linkToFilter');
$link.attr('href', $link.attr('href')+'/'+data);