[英]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表單小部件,則可以在表單小部件上使用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
小部件的domnode,也可以完全跳過這一部分,而直接訪問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和成功與錯誤頁面中的值,以檢查是否成功,然后根據您的要求加載塊,如果超時或其他錯誤,則返回錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.