我有一个textarea字段,其值以编程方式设置。我想知道何时设置该值并在设置值后执行进一步的操作。我试过了.on("change"), .bind("input propertychange")
,但似乎没有任何效果。有什么建议吗?
<textarea id="testField"></textarea>
$("#testField").on("change keyup", function() {
// your code here
alert("Changed");
});
干杯。
答案 0 :(得分:0)
似乎更改事件仅在用户与UI直接交互时触发。
重新定义触发我的特定textarea元素的更改事件的value属性:
// A specific instance of HTMLTextAreaElement
var txt = document.getElementById('txtDescripcion');
// define value property for your input instance
Object.defineProperty(txt, 'value', {
set: function(newValue) {
var valueProp = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value');
var oldValue = valueProp.get.call(txt);
valueProp.set.call(txt, newValue);
// Trigger the change event if value changed
if (oldValue != newValue) {
txt.dispatchEvent(new InputEvent('change'));
}
},
get: function() {
var valueProp = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value');
return valueProp.get.call(txt);
}
});