如何在 dijit/form/Form 中获取输入
How to obtain inputs within 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表单小部件
如果使用 Dijit 表单小部件,则可以使用表单小部件上的getValues()
序列化整个表单。这将为您序列化表单:
xhr.post("mySubmitUrl", {
data: registry.byId("myForm").getValues()
}).then(function() {
console.log("Success");
});
我还制作了一个JSFiddle来演示这一点。
使用本机表单元素
如果您使用的是本机表单元素,则使用 dijit/form/Form
没有任何优势。若要序列化窗体,可以使用 dojo/dom-form
模块中的函数toObject()
。此函数要求您传递表单 DOM 节点。
这意味着您可以传递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 和成功和错误页面中传递值以检查是否成功,然后根据您的要求加载块,并在超时或其他错误时出错
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 需要使用javascript获取输入文本,然后将其添加到句子中
- 从可编辑的引导程序中获取输入值
- Knockout获取输入值
- 如何在用户输入后立即获取输入字段的值
- 使用xPath从Jquery数据验证程序获取输入
- 如何通过 Javascript 获取输入字段值
- 如何在 OnKeyPress 事件后获取输入表单元素的值
- 获取输入框的值
- 如何从 $(this).context 获取输入值
- 如何使用 jQuery 获取输入字段的值
- 在 AngularJS 中单击时获取输入的位置
- 如何动态获取输入值并使用javascript执行算术运算
- 在Jquery中将鼠标悬停在图像上后获取输入标记的URL
- jQuery无法获取输入值
- 修改序列化表单函数以获取输入ID而不是名称
- 如何在Javascript中获取输入字段的值
- jquery模态对话框通过id获取输入类型text的值
- 使用jStorage设置并获取输入值
- 如何在jquery中通过自定义属性获取输入字段的值