gpt4 book ai didi

javascript - 从javascript函数更新Groovy字符串中的多个参数

转载 作者:行者123 更新时间:2023-12-02 15:34:45 24 4
gpt4 key购买 nike

好的,我是javascript / grails新手,不确定在这里做什么。

基本上,我有一个被多个参数调用的javascript函数,我想将它们替换为grails可分析的字符串。

我有许多grails下拉菜单,它们调用javascript函数来链接到另一个页面,该页面具有多个需要传递的参数(项目编号和数量)。

这里是选择:

<g:select optionKey="key" optionValue="value" value="${item.getQty()}" name="qty" from="[1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9]"
onchange="goToPage('qty${item.id}',this.value)"></g:select>

javascript函数:
<script type="text/javascript">
function goToPage(itemId, val){
window.location.href="${createLink(controller:'GOrder' ,action:'updateShoppingCart' params:[item: "", qty: ""])}" + itemId + val;
}



因此,它采用itemId和val,将它们连接起来,并用该串联值替换最后一组引号。我想为每个参数替换一组引号。

我真的不明白如何将字符串串联起来实际上替代了一个值。

谢谢!

最佳答案

您在这里混合了服务器端和客户端。的

${createLink(controller:'GOrder' ,action:'updateShoppingCart' params:[item: "", qty: ""])}

是在将GSP渲染为HTML时由服务器端的Grails评估的,因此最终在JavaScript中生成的内容类似于
function goToPage(itemId, val){
window.location.href="/myapp/GOrder/updateShoppingCart?item=&amp;qty=" + itemId + val;
}

相反,您可能想要的是只生成基本URL,直到Grails端的问号,然后在JavaScript的客户端添加查询参数。
function goToPage(itemId, val){
window.location.href=
"${createLink(controller:'GOrder', action:'updateShoppingCart'
).encodeAsJavaScript()}?item=" + encodeURIComponent(itemId)
+ "&amp;qty=" + encodeURIComponent(val);
}

请注意我添加了 encodeAsJavaScript()的方式-在生成要包含在JavaScript字符串文字中的值时,应始终使用它,它将反斜杠转义需要它的任何内容。同样,您要添加到URL的任何JavaScript字符串都需要使用JavaScript encodeURIComponent函数进行编码-例如,如果 itemId的值为“item one”,则需要在URL后面附加 item%20one

关于javascript - 从javascript函数更新Groovy字符串中的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13379490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com