簡體   English   中英

如何在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/TextBoxdijit/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小部件的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM