Events 手动更改后Dojo Textarea触发onChange

Events 手动更改后Dojo Textarea触发onChange,events,dojo,textarea,Events,Dojo,Textarea,现有Dojo 1.10页面具有以下HTML文本区域(我无法更改源代码): 非常感谢您提供的任何帮助获取您的小部件并使用此选项。设置('value',value)使用change事件传递的值更新您的小部件 示例(请打开控制台): 在代码中,应该添加this.set('value',value)如果change事件不能按预期的方式用于textarea元素,则可能需要添加数据dojo props=“intermediateChanges:true”到文本区尝试了onkeyup和onblur事

现有Dojo 1.10页面具有以下HTML文本区域(我无法更改源代码):


非常感谢您提供的任何帮助

获取您的小部件并使用
此选项。设置('value',value)
使用
change
事件传递的值更新您的小部件

示例(请打开控制台):





在代码中,应该添加
this.set('value',value)onChange
回调中的code>如果
change
事件不能按预期的方式用于
textarea
元素,则可能需要添加
数据dojo props=“intermediateChanges:true”
文本区

尝试了
onkeyup
onblur
事件,而不是
onchange
欢迎!请发布一个JSFIDLE,以便我们能更好地回答。谢谢我尝试了onkeyup,但行为是一样的。与我刚刚发布的jsFIddle一样,只有手动修改textarea时才会触发该事件。谢谢,但我找不到如何将您的代码应用到我刚刚发布的jsFIddle示例。我在你的中看到,你正在创建一个新的文本区域,但我需要检索一个现有的文本区域。
<textarea tabindex="40" data-qbo-bind="value: payeeMessage" class="customerMessage" data-dojo-attach-point="_gridTabTarget" maxlength="1000"></textarea>
dojo.query(".customerMessage").connect("onchange", function() { alert("Changed!"); });
var widget_node = dojo.query(".customerMessage")[0];
widget_node.innerHTML="123123";
widget_node.onchange();
require(['dijit/form/TextBox', 'dojo/on'], function(TextBox, on) {
  var textBox = new TextBox({
    intermediateChanges: true
  }, 'button');
  on(textBox, 'change', function(value) {
    this.set('value', value);
    console.log(this.get('value')); // widget updated
  });
});
<div id="button"></div>