从下拉菜单将值传递给 gsp 中的脚本
Passing value to script in gsp from drop down menu
我目前正在尝试传递从g:select
下拉菜单中选择的值,并将其传递给与下拉菜单位于同一 gsp 内的脚本。出于某种原因,仅当我调用函数本身并且不从控制器函数向其传递值时才有效,该函数正在获取我需要传递给脚本的值。我很确定问题来自我将值从控制器传递到我的 gsp 以便它可以发送到我的脚本,但我不确定为什么它在传递时不起作用。
这是我的脚本的代码:
function locationParameterSet(data){
alert("This worked " + data);
}
这是我的g:select
下拉菜单的代码:
<g:select name="locationSelection" from="${location_names}" value="${params.site_id}"
optionKey="location_id" optionValue="short_name" noSelection="['': '----Site----']"
onchange="${remoteFunction(controller: 'term', action: 'locationParameterSet',
onComplete: 'locationParameterSet(data)', params: '''location_id='' + this.value',
options: '[asynchronous: false]')}"/>
这是从下拉菜单中选择选项时运行的方法。它将id
传递回g:select
,并在控制器内的方法完成后运行onComplete: 'locationParameterSet(data)'
。onComplete
调用我的脚本函数locationParameterSet(data)
:
def locationParameterSet = {
session["location_id"] = params.location_id
def location_id = params.location_id
[location_id: location_id]
}
是否有其他方法可以将id
发送到 gsp,以便我的脚本运行?
我对你的问题不明白的一件事是:
为什么要再次将 ID 发送到 GSP? 您的选择中已经有它了。
如果 onchange 处理程序工作,它应该像
:<g:select name="locationSelection" from="${location_names}" value="${params.site_id}"
optionKey="location_id" optionValue="short_name" noSelection="['': '----Site----']"
onchange="locationParameterSet(this.value)"/>
不知何故,onchange不包含在grails选择的/latest/docs中,即使我记得我在那里看到过它,但无论如何它不是grails功能,它只是一个javascript事件。它应该和写一样:
var sel = document.getElementById('giveSelectAnId');
sel.onchange = function() {
locationParameterSet(this.value)
}
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- Google Adsense多次加载脚本
- 从下拉菜单将值传递给 gsp 中的脚本