javascript - Establecer el valor de Dijit.Form.Textarea
dojo (2)
Tengo un cuadro de diálogo dijit que contiene un formulario que quiero completar automáticamente. Puedo mostrar el cuadro de diálogo con el formulario, pero no he podido establecer el valor de un área de texto dentro del formulario. Aquí está el div que alberga el 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>
GUARDAR CERRAR
Puedo hacer que esto se muestre bien al hacer
var formDlg = dijit.byId ("formDialog"); formDlg.show ();
Pero el problema que tengo es establecer el valor del área de texto llamado "desc". He intentado varias cosas, pero sé que necesito
var test = dijit.byId("desc");
pero si establezco alguna propiedad de prueba, como
test.value = "foo";
test.textContent = "foo";
test.innerHTML = "foo";
test.srcNodeRef = "foo";
El valor nunca se guarda y se muestra dentro del área de texto. Hay un truco para hacer esto? Cualquier ayuda sería genial. Gracias
var test = dijit.byId("desc");
test.set("value", "foo");
... debería hacer el truco, creo. La mayoría de los widgets en Dojo utilizan el método set
(anteriormente attr
) para establecer valores de propiedades, en lugar de manipularlos directamente como lo has intentado hacer. También puede establecer múltiples propiedades de una sola pasada pasando un objeto:
var test = dijit.byId("desc");
test.set({"value": "foo", "name": "someName"});
Por algún motivo, dijit.byId("txtAreaMytextarea").set("value", "somevalue")
no funciona con TextArea
pero funciona con otros tipos de dijit cuando usa Dojo 1.6 y usa dijit.form.SimpleTextarea
como TextArea
. La función setValue("")
tampoco funciona.
Si esto le sucede, intente usar dojo.byId
lugar de dijit.byId
y simplemente establezca el valor haciendo
dojo.byId("txtAreaMytextarea").value = "somevalue";