Я новичок в grails, и я пытаюсь вставить другой элемент текстового поля в форму при заполнении первого поля. Я пытаюсь выполнить действие remoteFunction для вызова шаблона но шаблон не вызывается. Если я изменю «g: textField» на параметр «g: select», я получу раскрывающийся список, но не хочу раскрывать окно.
Моя идея состоит в том, чтобы иметь поле имени и когда оно заполняется, оно должно содержать другое имя, которое будет введено под первым. Я не хочу жестко кодировать несколько полей имени в форму.
Мои View--
<tr class="prop">
<td valign="top" class="name">
<label for="casStudent_1"><g:message code="casawards.casStudent_1.label" default="Student #1" /></label>
</td>
<td valign="top" class="value ${hasErrors(bean: casawardsInstance, field: 'casStudent_1', 'errors')}">
<g:textArea onchange="${remoteFunction(action: 'create2' controller="casawards",
update: 'casStudent_2',
params: '\'timeName=\' + this.value')}"
name="casStudent_1" valueMessagePrefix="casawards.casStudent_1"
value="${casawardsInstance?.casStudent_1}" />
</td>
</tr>
контроллер -
def _create2 = { render (template:"create2") }
шаблона (create2) -
<tr class="prop">
<td valign="top" class="name">
<label id = "casStudent_2" for="casStudent_2"><g:message code="casawards.casStudent_2.label" default="Student #2" /></label>
</td>
<td valign="top" class="value ${hasErrors(bean: casawardsInstance, field: 'casStudent_2', 'errors')}">
<g:textField name="casStudent_2" value="${casawardsInstance?.casStudent_2}" />
</tr>
Любое руководство будет оценено.
Зачем вам нужно перейти на сервер, чтобы создать новое поле? Вы можете легко манипулировать DOM с помощью javascript. Существует ли какая-либо обработка на стороне сервера, прежде чем вы вставляете второе поле? – aldrin
Я новичок и не знаю javascript, чтобы вставить поле. Можете ли вы его предоставить? – spk2bruce
попробуйте эту ссылку для получения помощи http://stackoverflow.com/q/9630854/74057 – aldrin