使用javascript调用Action

calling an Action using javascript

本文关键字:Action 调用 javascript 使用      更新时间:2023-09-26

对PLAY框架相当新,由于我工作中的限制,我们正在使用1.2.5版本,而到目前为止,我能够使用从HTML到通过表单提交控制器的常规过程来完成我的所有过程。我想调用一个应用程序。

虽然我有一个输入信息的表单,但可以单击另一个非提交按钮以进入单独的页面以获取额外信息。我想通过"onClick"调用一个JavaScript函数,并在JavaScript函数中调用"@Application"。行动(一些参数…)"。

在调用操作之前,我需要获取特定输入字段中的内容。

我试图用PLAY"弹出"来做到这一点,但这似乎不起作用,因为我无法传递参数。

这是我的代码片段:

在HTML文件(扩展main.html谁拥有所有的javascript文件"include")

 <form>....
        some input fields here
        submit button here
    </form>
<button onclick="myFunction()" data-role="button" style="width: 5em">Click here</button>
main。html中包含的JavaScript文件中的

我有这样的内容

function myFunction() {
    var inputField1 = document.getElementById('inputField1').value;
    var inputField2 = document.getElementById('inputField2').value;
    var inputField3 = document.getElementById('inputField3').value;
    window.location = "@{Application.moreInfo(inputField1, inputField2, inputField3)}";
}

当然不行

有那样做的方法吗?

我需要为此创建一个路由吗?

我可以通过替换

到达一个单独的页面
window.location = "@{Application.moreInfo(inputField1, inputField2, inputField3)}";

 window.location.href='/goThere'; 

只要我有一个路由

 /goThere   Application.goThere

但是我找不到传递参数的方法,我试着像

那样设置路由
/goThere/{inputField1}{inputField2}{inputField3}    Application.goThere(inputField1...)

但是我想我也没有正确的语法。

是否有一种方法可以调用应用程序。

感谢您的帮助

内置的#{jsAction /}模板标签完全符合您的要求。

的例子:

假设你有一个路由

GET     /moreinfo/{foo}/{bar}        Application.moreInfo

您可以使用jsAction的结果来获得您想要的参数的正确URL:

var fieldOne = "I'm a Javascript variable";
var fieldTwo = "Really? Me too";
var moreInfoAction = #{jsAction @Application.moreInfo(":foo", ":bar") /};
// and since it looks like you want to set the current location
// to your freshly obtained URL:
window.location.href = moreInfoAction({"foo": fieldOne, "bar": fieldTwo});