javascript - Grails:选择另一个下拉列表时填充下拉列表

标签 javascript jquery grails drop-down-menu

我有一种情况,一旦在另一个下拉列表中做出选择,我需要在我的 gsp 上填充一个下拉列表。我不知道该怎么做。在呈现 gsp 之前,我通过模型映射填充了父下拉列表。

我可以在渲染 gsp 之前轻松地从我的 Controller 向 gsp 提供模型信息,但是我在动态创建模型并将模型传递给 gsp 时遇到了麻烦,即一旦 gsp 已经渲染了怎么办?我应该将它作为ajax发送还是如何发送?我就是看不出来。我不是在寻找准确的代码答案,而是在寻找概念性建议。

我做的第一步是尝试在 gsp 上的父下拉列表用于选择值时调用 Controller 中的函数:

<g:select name = "seleInst" from = "${instlist}" style = "border-radius: 5px" onchange="${remoteFunction(action:'updateUserlist(this.value)', controller: 'admin')}"></g:select>

我在这里面临的问题是如何将参数(在父下拉列表中选择的值)传递给 Controller ​​方法。我只是把它放在上面的括号中以帮助我思考。这可能不是正确的语法。

谢谢。

最佳答案

执行此操作的正确方法是通过 ajax 填充第二个列表。使用 jQuery 这非常简单。

  1. 将 on("change") 事件监听器附加到第一个选择列表。
  2. 进行 ajax 调用以从您的 Controller 获取 JSON 响应,并传递所选值。
  3. 使用来自 Controller 的 JSON 响应用选项元素填充第二个列表。

如果确实需要,我可以提供每个的详细代码示例,但您说您只是想要概念性建议,所以让我们从那里开始吧。

已更新

看到您正在使用 remoteFunction(我可能会提到它在未来的 Grails 版本中会消失),您将很难正确地获取参数。

然而,根据this post可以办到。如果您使用的是 Grails 的 2.x 版本,那么您的提供者将是 jQuery。我个人一直远离remoteFunction标签,自己写了jQuery。

关于javascript - Grails:选择另一个下拉列表时填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848457/

相关文章:

javascript - 如何获取json数组?

grails - 在代理后面滚动/重定向到https

grails - grails-2.4.3无法正常工作?

javascript - 使用 ajax GET 请求测试 Django 模板 - ajax 请求未调用

javascript - 如何在几分钟/几秒/次后清除JavaScript变量值

javascript - 将 *ngif 标签应用于当前范围/表行

javascript - jQuery 验证插件在两个提交按钮中工作

jquery $(this) 返回 [object object] 而不是 DOM 引用

javascript - 使用 ajax 回调将数据源绑定(bind)到 Controller 时,数据未显示在 Kendo Grid 上

json - 如何使用 Grails 1.2 动态呈现复杂的 JSON?