【问题标题】:Grails - Select menu not renderingGrails - 选择菜单不呈现
【发布时间】:2014-06-02 20:13:21
【问题描述】:

所以我正在创建 2 个下拉菜单,其中第二个会根据第一个动态变化。但是,第二个菜单不会呈现更改,但在使用 Firebug 查看帖子时会提供正确的选项。

这里是渲染菜单的函数

def findSubtagsForTags(){
    print Tag.getAll()

    def tag = Tag.get(params.tag.id)

    render(template: 'subtagSelection', model:  [subtags: tag.subtags])
    }

这个方法在我的 _form.gsp 模板中被调用,该模板由 create.gsp 调用(大部分都是由 grails 脚手架生成的)。这是我的代码 sn-p 我在哪里调用它

<g:select name="tag.id" from="${Tag.list()}" optionKey="id" optionValue="tagName"
            noSelection="['':'Choose Tag']"
            onchange="${remoteFunction (
                    controller: 'tag',
                    action: 'findSubtagsForTags',
                    params: '\'tag.id=\' + this.value',
                    update: 'subtagSelection'
            )}" />

 <td id="subtagSelection" valign="top">
        <select>
        <option>Choose Tag</option>
        <g:select name="subtags.id" id="subtags.id" from="${[]}" optionKey="id"/>
        </select>
</td>

并且正在呈现的 subtagSelection 模板是

<g:select name="subtag.id" from="${subtags}" optionValue="name" optionKey="id" id = "subtags.id"/> 

页面上的第二个菜单总是“选择标签”,但是使用Firebug,当我看帖子时,这是生成的

<select name="subtag.id" id="subtags.id" >
<option value="1" >Training</option>
<option value="2" >Software</option>
</select> 

但是,第二个菜单没有变化。

在firebug的Net选项卡下,这是我的函数调用的'put'请求

Post:
    Parameters : tag.id 1
Source:
    tag.id=1

回复:

<select name="subtagSelection" id="subtagSelection" >
<option value="1" >Training</option>
<option value="2" >Software</option>
</select> 

有什么想法/解决方案吗?

编辑:使用https://stackoverflow.com/a/3771240/3691484 作为参考,更改了我的代码,并更改了模板文件等,问题得到了解决

【问题讨论】:

  • 您需要使用 Firebug(或类似工具)来查看发送到 remoteFunction 调用并从调用中接收到的内容(使用 FB 中的 Net 面板)。我猜参数可能不太正确。还要检查页面中没有重复的#subtagSelection 元素。
  • 编辑了以上内容以显示我的萤火虫“网络”结果。此外,在 remoteFunction 中,更新参数是否应该引用 ?或

标签: html grails


【解决方案1】:

尝试一些修改 - 看看是否有什么不同:

<g:select name="tag.id" from="${Tag.list()}" optionKey="id" optionValue="tagName"
        noSelection="['':'Choose Tag']"
onchange="${remoteFunction (
        controller: 'tag',
        action: 'findSubtagsForTags',
        params: "'tag.id=' + this.value",
        update: 'subtagSelection'
    )}"
 />

<td id="subtagSelection11" valign="top">
<div id="subtagSelection">
<g:select name="subtags.id" id="subtags.id" from="[]"
optionKey="id" noSelection="['': 'Choose Tag']" />
</div>
</td>

选择中的选择存在小问题? - 在没有选择任何内容时使用 noSelection 标签

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 2017-08-16
    • 1970-01-01
    相关资源
    最近更新 更多