在我的春季启动应用程序中,我需要提交一个表单,表单操作应该是一个函数。这是我试过的代码:
提交表单的html代码:
<form role="form" id="form_id" data-parsley-validate="" novalidate=""
class="mb-lg" th:action="get_action()" method="get">
javascript函数:
function get_action(){
$("#form_id").attr("action"); //Will retrieve it
$("#form_id").attr("action", "@{/changePassword1}"); //Will set it
}
这是我得到的错误 “出现意外错误(类型=内部服务器错误,状态= 500)。 无法解析为表达式:“get_action()”(admin:55)“
我该如何解决这个问题,以便我可以将表单操作作为函数传递?
答案 0 :(得分:0)
你搞砸了,thymeleaf正在服务器端呈现视图,javascript在客户端执行,th:action期望得到一些主题表达式(e.q @ {/ changePassword1})。
如果你想使用javascript更改动作网址,你需要将此脚本放在底部标签的某个html文件中,以便百万富翁可以呈现你的百万富翁变量。
你需要在某处调用你的javascript url更改,我不知道是什么原因(你没有指定)url更改所以我猜它可以在页面加载后调用(eq jQuery $(document)。 ready())或由某些事件(按钮点击)引起的
修改强>
<form role="form" id="form_id" data-parsley-validate="" novalidate=""
class="mb-lg" th:action="@{/changePassword}" method="get">
和你修改过的例子js
<script>
$(function(){
function get_action(){
//Will retrieve it
console.log("form action url:" + $("#form_id").attr("action"));
$("#form_id").attr("action", "@{/changePassword1}"); //Will set it
}
get_action();
});
</script>