Передача выбранного значения переключателя в Groovy контроллер - PullRequest
0 голосов
/ 12 февраля 2019

Невозможно получить значение выбранного переключателя для класса контроллера.У меня есть радиогруппа для отображения двух радиокнопок на странице, а также текстового поля ввода и кнопки, которая проверяет ввод и переводит их на нужную страницу.Идея состоит в том, что пользователь может выбрать переключатель, который, в свою очередь, определит действие, выполняемое над тем, что вводится в текстовое поле.

Однако мне трудно передать значение переключателя на контроллер, в зависимости от того, какой переключатель был выбран, это будет определять способ проверки ввода пользователя.

Естьпросмотрел документацию по grails, а также через сообщения о переполнении стека, чтобы попытаться понять, как передать значение selected в контроллер groovy из моего класса index.gsp.

index.gsp:

<table>
      <tr>
        <g:radioGroup name=“Radio" values=“['value1', ‘value2']" value="value1" onchange="setRadio(this)">
          <td> ${it.radio} ${it.label}
          </td>
        </g:radioGroup>
      </tr>
    </table>

    <g:form>
      <table class =“Radiotable">
        <tr>
          <td>
            <g:textArea class="smallTextArea" name=“radioVal" value="Paste your input for value1" />
          </td>
        </tr>
          <td>
            <g:actionSubmit value="validate" action="validate" />
      </table>
</g:form>

контроллер:

class AesController {

    def index() {


    }
    def validate() {

    }

}

onchange = «setRadio (this»>

Изменяет текст, отображаемый вполе ввода с функцией JS. По умолчанию отображается «Вставить ввод для значения1». В настоящее время, если пользователь переключается между двумя переключателями, переключается между «Вставить ввод для значения1» и «Вставить ввод для значения2». Идеяявляется то, что, если у них выбрано значение1 или значение2, это будет иметь другое значение, и с введенным текстом будет происходить другое действие

Я ожидаю, что пользователь сможет выбрать переключатель, и это значение будет передано в контроллер, так чтоэто знать, какую радиокнопку нажал пользователь.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

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

<g:form>
...
<g:radioGroup name="Radio" values="['value1', 'value2']" value="value1" onchange="setRadio(this)">
...
<g:textArea class="smallTextArea" name="radioVal" value="Paste your input for value1" />
...
<g:actionSubmit value="validate" action="validate" />
</g:form>

Тогда вы можете легко получить доступ к значению переключателя по params.Radio

0 голосов
/ 13 февраля 2019

Я бы также предложил вам добавить группу переключателей в форму.Однако, если это не сработает, добавьте в форму скрытое поле:

<g:hiddenField name="selectedRadioButton" value="value1" />

и обновите его в функции setRadio (x) javascript в зависимости от выбора.

...