Updating the value
property won't trigger the change event. The change event is triggered by the user.
You can either write a function which changes the value and does whatever else you need to do...
function changeTextarea(str) {
document.getElementById('a').value = str;
// Whatever else you need to do.
}
...or poll the textarea
's value...
(function() {
var text = getText();
var getText = function() {
return document.getElementById('a').value;
}
setInterval(function() {
var newtext = getText();
if (text !== newText) {
// The value has changed.
}
text = newText;
}, 100);
})();
...or explicitly call the onchange()
event yourself.
document.getElementById('a').onchange();
(Assuming you set the event up with onchange
property.)
The workarounds are not terribly great solutions. Either way, you need to do some intervention to trigger extra code when updating a textarea
's value
property.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…