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
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"});
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";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With