我是grails的新手,我正在尝试在第一个字段填写时将另一个textfield元素插入到表单中。我正在尝试使用remoteFunction操作来调用模板但是模板没有被调用。如果我将“g:textField”更改为“g:select”选项,我会得到一个下拉框,但不想要下拉框。
我的想法是拥有一个名称字段,当它被填写时,它应该在第一个字段下面输入另一个名称字段。我不想在表单中硬编码几个名称字段。
我的观点 -
<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>
任何指导都将不胜感激。
答案 0 :(得分:0)
remoteFunction中的'update'参数应指向现有的DOM元素。在您的情况下,将调用'casawards / create2'并将响应设置为ID为“casStudent_2”的现有DOM元素的内容。你确定你的DOM中存在这个元素吗?
另一个问题是当您将焦点移出textarea时调用onChange。尝试单击页面中的其他位置,查看是否进行了呼叫。