我dijit/form/Form
用来包含我的输入,然后在我尝试提交时遇到问题dijit/form/Form
,当我在此表单中有一个提交按钮时,它可以成功提交但重定向到另一个页面(Spring MVC
充当服务器端),如果我删除此提交按钮 我不知道如何获取此表单的输入。
如果有任何方法dijit/form/Form
可以获取其输入,以便我可以提交它。
谢谢。
我dijit/form/Form
用来包含我的输入,然后在我尝试提交时遇到问题dijit/form/Form
,当我在此表单中有一个提交按钮时,它可以成功提交但重定向到另一个页面(Spring MVC
充当服务器端),如果我删除此提交按钮 我不知道如何获取此表单的输入。
如果有任何方法dijit/form/Form
可以获取其输入,以便我可以提交它。
谢谢。
dijit/form/Form
包含一些与 Dijit 表单小部件 ( dijit/form/TextBox
, dijit/form/Select
, ...) 一起使用的实用程序。我不知道您是否正在使用这些,但无论是否使用,答案都非常相似。这个想法是将您的表单序列化为一个对象并使用 AJAX 调用提交该表单。
如果您使用 Dijit 表单小部件,您可以使用您的表单小部件序列化整个表单getValues()
。这将为您序列化表单:
xhr.post("mySubmitUrl", {
data: registry.byId("myForm").getValues()
}).then(function() {
console.log("Success");
});
我还制作了一个JSFiddle来演示这一点。
如果您使用的是原生表单元素,那么使用dijit/form/Form
. 要序列化表单,您可以使用模块中的toObject()
函数dojo/dom-form
。这个函数需要你传递一个表单 DOM 节点。
这意味着您可以传递小部件的 domnode dijit/form/Form
,或者完全跳过这部分并直接访问 DOM 节点。
xhr.post("mySubmitUrl", {
data: domForm.toObject(registry.byId("myForm").domNode)
}).then(function() {
console.log("Success");
});
可以在此处找到一个示例 JSFiddle 。
现在在服务器端(Spring),您只需添加一个将处理该特定请求的方法,例如:
@RequestMapping(value = "mySubmitUrl", method = RequestMethod.POST)
public void doPostForm(@RequestParam("name") String name, @RequestParam("firstname") String firstname) {
// Do stuff
}
您可以使用 jquery ajax 调用,在数据中您可以传递 JSON 和成功和错误页面中的值以检查是否成功,然后根据您的要求加载块并在超时或其他错误时出错