pm100
pm100

Reputation:

dojo - how to allow a module to popup a dialog

i have a module. I need it to be able to display a modal dialog.

Seems like I need to inject a div into the main DOM and then parse it. Is this the right approach. Are there samples (or even a util- seems like this would not be that uncommon)

Upvotes: 1

Views: 7384

Answers (1)

Maine
Maine

Reputation: 1878

There are samples for almost everything in DojoCampus and in the tests directory:

var pane = dojo.byId('thirdDialog');    
thirdDlg = new dijit.Dialog({
  id: "dialog3",
  refocus:false,
  title: "Programatic Dialog Creation"
},pane);

Note that this particular widget doesn't need to be inserted to the DOM manually - it appends itself to the end of the page. Here the second parameter to the Dialog constructor - pane - is a reference to the node whose content should be displayed inside the Dialog.

UPDATE: Based on the new information you should try this:

dojo.require("dijit.Dialog");
dojo.addOnLoad(function() {
    secondDlg = new dijit.Dialog({
        title: "Programatic Dialog Creation",
        style: "width: 300px",
        content: "Insert text here"
    });
    secondDlg.show()
});

As shown here, you can pass Dialog content in the content attribute. (This sample is executable in FireBug on any page that includes Dojo.)

UPDATE: So, you want to have a form inside the Dialog? Nothing special here. Hey, you can even have a dijit form over there! Be sure to check out that DojoCampus article on Dialogs to learn how Dialog can communicate with a dijit form.

dojo.require("dijit.Dialog");
dojo.require("dijit.form.TextBox");
dojo.addOnLoad(function() {
    secondDlg = new dijit.Dialog({
        title: "Programatic Dialog Creation",
        style: "width: 300px",
        content: "<h2>Sample Form</h2>" +
            "name: <input dojoType='dijit.form.TextBox' type='text' name='name' id='name'>"
    });
    secondDlg.show()
});

(Again this sample is executable in FireBug on any page that includes Dojo.)

Upvotes: 5

Related Questions