Передача параметров в теге createlink с использованием jQuery

Я пытаюсь сделать очень простую вещь, но я застрял и чувствую себя таким глупым. В основном у меня есть текстовая область, определенная следующим образом:

<textarea id="comment" name="comment" class="form-control" rows="7"></textarea>

Затем у меня есть тег createlink, где я хотел бы передать в разделе параметров содержимое текстовой области, поэтому я сделал что-то вроде этого:

<g:createLink controller="admin"
              action="book"
              id="${bookingInstance?.id}"
              params="jQuery('#comment').serialize()"/>

Конечно, это не работает. Кто-нибудь может дать мне несколько советов?

большое спасибо

нибе

ОБНОВЛЕНИЕ: ссылка на создание находится внутри тега html. Нравится:

<a class="btn btn-primary btn-centered" onclick="getComment();" title="Press me" href=
<g:createLink
   controller="admin"
   action="bookAccepted"
   id="${bookingInstance?.id}"/>>
  Press me
 </a>

Функция getComment() определяется следующим образом:

function getComment() {
    window.location.href = $(this).attr('href') + '?' + $('#commet').serialize();
    return false;
}

В результате я получил это сообщение об ошибке: Предоставлен идентификатор неправильного типа для класса com.Booking. Ожидается: класс java.lang.Long, получен класс java.lang.String. Stacktrace следует: Сообщение: предоставлен идентификатор неправильного типа для класса com.Booking. Ожидается: класс java.lang.Long, получен класс java.lang.String


person NiBE    schedule 02.04.2014    source источник


Ответы (2)


Ну, вы должны сделать это с помощью jQuery. Так что, возможно, что-то вроде этого:

<g:link controller="admin" action="book" id="${bookingInstance?.id"} onclick="return function() { window.location.href=$(this).attr('href') + '?' + $('#comment').serialize(); return false;}">My link</g:link>
person Joshua Moore    schedule 02.04.2014
comment
Привет, Джошуа, спасибо за ответ, но, насколько я знаю, createLink не разрешает событие onclick. Я выехал на улицу в теге ‹a›. Но все же я получил сообщение об ошибке: Предоставлен идентификатор неправильного типа для класса com.xxx.Booking. Ожидается: класс java.lang.Long, получен класс java.lang.String. Stacktrace следует: - person NiBE; 03.04.2014
comment
Ах, моя ошибка. Я думал о g:link, который действительно позволяет это. Я обновил свой ответ. - person Joshua Moore; 03.04.2014

Или вы можете попробовать использовать JS таким образом. У меня отлично работает, конечно, для вызова ajax.

function sendTextArea(comment) {
     var params = {"comment":comment, "id": ${bookingInstance?.id}};
     console.log(params);
     ${remoteFunction(controller: 'admin', action: 'book', params:'params', update:'div')}
}
person Carleto    schedule 02.04.2014