Установить значение 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";