Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set Value of Dijit.Form.Textarea

I have a dijit dialog that contains a form that I want to auto-populate. I can get the dialog to display with the form in it, but I have been unable to set the value of a text area within the form. Here is the div that houses the html.

<div dojoType="dijit.Dialog" id="formDialog" title="Form Dialog" >
<table>
    <tr>
        <td>
            <label for="desc">
                Description:
            </label>
        </td>
        <td>

        <textarea id="desc" name="desc" dojoType="dijit.form.Textarea" style="width:200px;"></textarea>

SAVE CLOSE

I can get this to display just fine by doing

var formDlg = dijit.byId("formDialog"); formDlg.show();

But the issue I have is setting the value of the textarea called "desc". I have tried multiple things, but I know I need to

var test = dijit.byId("desc");

but if I set any property of test, such as

   test.value = "foo";
   test.textContent = "foo";
   test.innerHTML = "foo";
   test.srcNodeRef = "foo";

The value is never saved and displayed inside the textarea. Is there a trick to doing this? Any help would be great. Thanks

like image 943
Isaac Levin Avatar asked Feb 24 '11 16:02

Isaac Levin


2 Answers

var test = dijit.byId("desc");
test.set("value", "foo");

..should do the trick, I think. Most widgets in Dojo use the set method (formerly attr) to set property values, instead of manipulating them directly like you've tried to do. You can also set multiple properties in one go by passing an object:

var test = dijit.byId("desc");
test.set({"value": "foo", "name": "someName"});
like image 111
Frode Avatar answered Nov 13 '22 04:11

Frode


For some reason, dijit.byId("txtAreaMytextarea").set("value", "somevalue") does not work with TextArea but works with other dijit types when you use Dojo 1.6 and use dijit.form.SimpleTextarea as TextArea. The function setValue("") also doesn't work.

If this happens to you, try using dojo.byId instead of dijit.byId and just setting value by doing

dojo.byId("txtAreaMytextarea").value = "somevalue";
like image 35
Waqas_Ashraf Avatar answered Nov 13 '22 02:11

Waqas_Ashraf