Tengo un formulario emergente w2ui con una definición de campo como esta:
{ field: 'step', type: 'html', html: { label: '', column: 'before', span: 0, html: "xx" } },En tiempo de ejecución, quiero cambiar el contenido de ese campo. No se basa (directamente) en un registro, diría que es un div html arbitrario. En aras de la simplicidad, digamos que reemplacemos el valor "xx" con "coucou"
en el evento onOpen de la ventana emergente, probé lo siguiente:
w2ui.DocForm.set('step', {html: {html: "coucou"}});No funcionó, así que probé esto:
w2ui.DocForm.fields[0].html.html = "coucou" con y sin w2ui.DocForm.refresh(); después
El contenido no cambió. ¿Alguna idea?
Finalmente he encontrado una solución. Una vez que modifiqué el campo html de esta manera: w2ui.DocForm.fields[0].html.html = "coucou" , en lugar de llamar a refresh() , tuve que llamar
w2ui.DocForm.formHTML = w2ui.DocForm.generateHTML();Ese fue el truco. No entiendo por qué funciona de esta manera, mientras que para todos los demás campos basados en registros funciona de otra manera, pero al menos está funcionando ahora.