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
..should do the trick, I think. Most widgets in Dojo use the
set
method (formerlyattr
) 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:For some reason,
dijit.byId("txtAreaMytextarea").set("value", "somevalue")
does not work withTextArea
but works with other dijit types when you use Dojo 1.6 and usedijit.form.SimpleTextarea
asTextArea
. The functionsetValue("")
also doesn't work.If this happens to you, try using
dojo.byId
instead ofdijit.byId
and just setting value by doing