Установить значение Dijit.Form.Textarea

У меня есть диалог dijit, который содержит форму, которую я хочу заполнить автоматически. Я могу заставить диалоговое окно отображаться с формой в нем, но мне не удалось установить значение текстовой области внутри формы. Вот div, в котором находится 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>

СОХРАНИТЬ ЗАКРЫТЬ

Я могу заставить это отображаться очень хорошо, делая

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

Но у меня есть проблема с установкой значения текстовой области, называемой "desc". Я пробовал несколько вещей, но я знаю, что мне нужно

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

но если я установлю какое-либо свойство теста, например

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

Значение никогда не сохраняется и не отображается внутри текстовой области. Есть ли хитрость в этом? Любая помощь будет отличной. Спасибо

2 ответа

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

... думаю, надо делать то, что нужно Большинство виджетов в Dojo используют set метод (ранее attr) устанавливать значения свойств, а не манипулировать ими напрямую, как вы пытались это сделать. Вы также можете установить несколько свойств за один раз, передав объект:

var test = dijit.byId("desc");
test.set({"value": "foo", "name": "someName"});

По какой-то причине dijit.byId("txtAreaMytextarea").set("value", "somevalue") не работает с TextArea но работает с другими типами dijit, когда вы используете Dojo 1.6 и используете dijit.form.SimpleTextarea как TextArea, Функция setValue("") тоже не работает.

Если это произойдет с вами, попробуйте использовать dojo.byId вместо dijit.byId и просто установить значение, выполнив

dojo.byId("txtAreaMytextarea").value = "somevalue";
Другие вопросы по тегам