2014-04-29 34 views
0

我是新來道場內容,我一直在關注這裏提到的教程 http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html道場對話框 - 如何保存的對話

我不知道如何捕獲對話框

<script type="text/javascript"> 
require(["dojo/ready", "dijit/Dialog", "dijit/form/Button"], 

    function(ready, Dialog, Button){ 
    ready(function(){ 
     var myDialog = new Dialog({ 
      title: "Add", 
      style: "width: 600px" 
     }); 

     var myButton = new Button({ 
      onClick: function(){ 
       myDialog.set("content", getDialog()); 
       myDialog.show(); 
      } 
     }, "progbutton"); 
    }); 
}); 

function getDialog(){ 
    return document.getElementById('add-link-dialog-container').innerHTML; 
} 


</script> 
輸入的數據

Html:

<div id="add-link-dialog-container" style="display:none;"> 
     <div> 
      <table class="dijitDialogPaneContentArea"> 
      <tr> 
       <td><label for="name">Name:</label></td> 
       <td><input data-dojo-type="dijit/form/TextBox" name="name" id="name" value="Test"/></td> 
      </tr> 
      <tr> 
       <td><label for="address">Address:</label></td> 
       <td><input data-dojo-type="dijit/form/TextBox" name="address" id="address"/></td> 
      </tr> 
      </table> 

      <div class="dijitDialogPaneActionBar"> 
       <button dojoType="dijit.form.Button" type="submit" id="ok">Add</button> 
       <button dojoType="dijit.form.Button" type="button" id="cancel">Cancel</button> 
      </div> 
     </div> 
     </div> 
     <button id="progbutton" type="button">Add New</button> 

彈出對話框。但是,我如何捕獲在字段中輸入的數據? 有沒有更好的方法來做到這一點?

回答

0

如果對話框正在打開,那麼你應該可以使用dijit/registry模塊來檢索你的表單域(也就是你的值/數據)。

例如:

require([ "dijit/registry" ], function(registry) { 
    registry.byId("ok").on("click", function() { 
     registry.byId("address").get("value"); // Will return the "address" value 
    }); 
}); 

當然現在的問題是,當你的onClick事件處理程序添加到您的按鈕。您必須等到對話框加載完成後才能向其添加事件處理程序。好的,dijit/Dialog有一個我們可以使用的叫onLoad的事件。

例如:

myDialog.on("load", function() { 
    registry.byId("ok").on("click", function() { 
     registry.byId("address").get("value"); // Will return the "address" value 
    }); 
}); 

但是,如果你在所有提交表單數據感興趣,你應該看看dijit/form/Form插件,它允許你獲取/設置表單值,驗證表單並提交它。

+0

完美的作品。謝謝 :) – Coder