gpt4 book ai didi

grails - 如何在不使用 JavaScript 的情况下向提交按钮添加参数?

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

我的表单有一个项目列表,每个项目都有一个删除按钮。我需要提交要删除的项目的索引以及表单的其他值(以供进一步编辑)。

使用 JavaScript,它看起来像这样:

<g:form method="post" mapping="defaultAction" id="${paymentInstance?.id}">
<g:hiddenField name="id" value="${paymentInstance?.id}"/>
<g:hiddenField name="version" value="${paymentInstance?.version}"/>
<g:hiddenField name="deleteAdjIdx"/>
<g:each in="${paymentInstance?.adjustments}" var="adj" status="idx">
<g:set var="adjName" value="adjustments[${idx}]"/>
<g:textField name="${adjName}.dollars" value="${adj.dollars}"/>
<g:actionSubmit action="deleteAdj" value="delete" onclick="jQuery('#deleteAdjIdx').val(${idx})"/>
</g:each>
</g:form>

如果没有 JavaScript,我怎样才能做到这一点? (除了发布的参数之外,我还可以在 URL 中添加一个参数吗?或者,在映射中添加某种多路复用?)

默认操作映射是:

    name defaultAction: "/$controller/$id"{     // stable URL for payments regardless of current status (editable or not)
constraints {
id(matches: /\d+/) // since our action names don't start with a digit but many domain ids do
}
}

最佳答案

我刚刚遇到了同样的问题,并使用 HTML5 的“formaction”属性找到了另一个解决方案。可以给它们一个值,其中可以包括 Controller 、操作、附加参数等。

一般来说,向表单上的提交按钮添加参数(例如删除特定子对象)将如下所示:

<input type="submit" formaction="/<controller>/<action>/<id>?additionalParam1=...&additionalParam2=..." value="Delete" >

在你的例子中:

<input type="submit" formaction="/payment/deleteAdj/${adj.id}" value="delete" >

<input type="submit" formaction="/payment/deleteAdj?delAdjID=${adj.id}" value="delete" >

在deleteAdj中,您可以删除params.id或params.delAdjID中指定的调整,然后保存params 中的数据或直接使用 params 重新填写表单(例如,在渲染 create.gsp 时)。

关于grails - 如何在不使用 JavaScript 的情况下向提交按钮添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748152/

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