使用Java脚本提交Spring表单

Nav*_*ani 2 java forms spring spring-mvc

我正在尝试使用 java 脚本根据确认条件提交一个弹簧表单。以下是我的控制器

@RequestMapping("/loadPage.do")
public ModelAndView loadPage()
{
    ModelAndView modelAndView;
    //some code
    return modelAndView;
}
@RequestMapping(value="/submitAction.do" , method=RequestMethod.POST)
public String submitForm(@ModelAttribute Object form, Model m ){
    //some code
    return "page";
}
Run Code Online (Sandbox Code Playgroud)

JSP

<script>
    function confirmForChanges (){
        var r= confirm("Do you want to proceed");
        if (r == true) {
            document.getElementById('submitButton').action = "/root/submitAction.do";
            document.getElementById('submitButton').submit();
            alert("Your changes have been saved");
        }if (r ==false){
            alert("changes not saved")
        }
    }
</script>

<form:form  action="/submitAction.do" commandName="command" method="post">
<input id=cancelButton type="button" value="Cancel" />
<input id=submitButton type="submit" value="Submit" onclick="javascript:confirmForChanges();"/>;
</form:form>
Run Code Online (Sandbox Code Playgroud)

问题是即使我取消了,表单也会被提交:(我尝试action="/submitAction.do"从jsp中的表单中删除,但没有成功。

小智 5

尝试使用事件 onsubmit="return confirmForChanges();"

function confirmForChanges() {
  var save = confirm("Do you want to proceed");
  alert(save ? 'Your changes have been saved' : 'changes not saved');
  return save; //if true then submit else don't submit
}
Run Code Online (Sandbox Code Playgroud)
<form:form action="/submitAction.do" commandName="command" method="post" onsubmit="return confirmForChanges();">
  <input id=cancelButton type="button" value="Cancel" />
  <input id=submitButton type="submit" value="Submit" />
</form:form>
Run Code Online (Sandbox Code Playgroud)