Javascript 如何同时提交表单和打开引导模式?
我需要提交HTML(带Thymeleaf)表单,同时打开一个引导模式。为了提交表单,我在按钮标签中设置了Javascript 如何同时提交表单和打开引导模式?,javascript,jquery,html,spring,thymeleaf,Javascript,Jquery,Html,Spring,Thymeleaf,我需要提交HTML(带Thymeleaf)表单,同时打开一个引导模式。为了提交表单,我在按钮标签中设置了type=“submit”。当我只需要打开一个模式时,我设置type=“button”。它是有效的。但是如何用一个按钮完成这两个动作呢 使用按钮创建表单: <div class="button-view"> <form id="view-form" action="/view-modal" method="get">
type=“submit”
。当我只需要打开一个模式时,我设置type=“button”
。它是有效的。但是如何用一个按钮完成这两个动作呢
使用按钮创建表单:
<div class="button-view">
<form id="view-form" action="/view-modal" method="get">
<input type="hidden" th:value="${n.getId()}" name="viewNoteId">
<button class="btn btn-info" data-toggle="modal" data-target="#view-modal"
type="button">View</button>
</form>
</div>
使用javascript使用onclick函数通过AJAX提交数据 按钮示例:
<button th:onclick="'submit(\'' + ${n.getId()} + '\');'" class="btn btn-info" data-toggle="modal" data-target="#view-modal"
type="button">View</button>
控制器:
@RequestMapping(value = "admin/users", method = RequestMethod.POST)
public RedirectView addUser(@RequestBody int id) {
/////
}
类似这样的情况。我用
type=submit
猜测您正在提交表单,从而强制重新加载页面。您需要转换代码,使其通过ajax提交,从而不会重新加载页面。或者,在页面加载上显示模式并在发布时设置。如何将userId
传递给控制器?是否应该使用@RequestBody而不是@RequestParam?什么viewNote()应该返回而不重新加载页面?我认为第一行应该这样看var userId={stringId:id}代码>否则您将丢失id
值。我将答案编辑为正确。您甚至不需要创建map变量,因为您只传递一个变量。如果要传递多个变量,则需要在服务器代码中创建一个数据传输对象,然后JSON.stringify映射并将stringify变量设置为AJAX的数据。
function submit(userId) {
$.ajax({
url : yourURLString,
type : 'POST',
data : userId,
dataType: 'json',
contentType: 'application/json',
success : function(returndata) {
},
fail : function() {
}
});
}
@RequestMapping(value = "admin/users", method = RequestMethod.POST)
public RedirectView addUser(@RequestBody int id) {
/////
}