2016-03-02 5 views
0

Существующего Dojo 1,10 страницы имеет следующий HTML (текстовое поле я не имею возможности изменять исходный код):Dojo Textarea триггер OnChange после ручного изменения

<textarea tabindex="40" data-qbo-bind="value: payeeMessage" class="customerMessage" data-dojo-attach-point="_gridTabTarget" maxlength="1000"></textarea> 

Я пытался создать JavaScript который изменит содержимое текстового поля, чтобы сохранить значение с формой. Я смог изменить контент, но он никогда не сохраняется, потому что каким-то образом мне нужно создать событие триггера onChange после изменения значения.

Мой код выглядит следующим образом, но это не вызывает событие:

dojo.query(".customerMessage").connect("onchange", function() { alert("Changed!"); }); 
var widget_node = dojo.query(".customerMessage")[0]; 
widget_node.innerHTML="123123"; 
widget_node.onchange(); 

Любая помощь очень ценится

+0

попробовали с событиями 'onkeyup' и' onblur' вместо 'onchange' –

+0

Добро пожаловать на SO! Пожалуйста, напишите jsfiddle, чтобы мы могли лучше ответить. Благодаря! – GibboK

+0

Я пробовал onkeyup, но поведение такое же. Как и в jsFIddle, который я только что опубликовал, событие запускается только в том случае, если я изменяю текстовое поле вручную – PHOLAN

ответ

0

Получите ваш виджет и использовать this.set('value', value), чтобы обновить виджет со значением, принятым change мероприятие.

Пример (Пожалуйста, откройте консоль):

https://jsfiddle.net/s5620bwd/3/

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> 

В коде, вы должны добавить this.set('value', value); в CallBack для onChange.

+0

Спасибо, но я не смог найти, как применить свой код к примеру jsFiddle, который я только что опубликовал. Я вижу в вашем, вы создаете новое текстовое поле, но мне нужно получить существующий. – PHOLAN

Смежные вопросы