Set Value of Dijit.Form.Textarea

2019-06-19 21:21发布

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

2条回答
干净又极端
2楼-- · 2019-06-19 21:40
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"});
查看更多
虎瘦雄心在
3楼-- · 2019-06-19 21:51

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";
查看更多
登录 后发表回答