HTML Textarea:值更改时如何通知(未触发输入事件)

甲虫汁

我的前端应用程序需要在其内容更改时自动调整文本区域的高度。我可以通过对input事件做出反应来部分解决此问题,例如:

textarea.addEventListener('input', adjustSize);

问题在于,在代码中设置值时不会触发此操作:

textarea.value = 'some new value';

是否还有一种优雅的方式来捕获这些变化?我看到的一种选择是手动触发事件,但是这对我来说不起作用,因为我需要对更改做出反应并进行调整大小的上下文显然不知道更改何时发生,并且上下文我进行更改的地方不知道值更改时还需要知道其他一些代码。

var textarea = document.getElementById('myInput');

textarea.addEventListener('input', adjustSize);

// this does not trigger the event handler
setTimeout(write, 1000);

function adjustSize() {
  console.log('adjustSize');
}

function write() {
  textarea.value = 'new textarea value';
}
.myInput {

}
<textarea id="myInput" class="myInput">
  I am textarea
</textarea>

斯科特·马库斯(Scott Marcus)

因为您是通过代码进行更改的,所以需要使用DOM突变观察器来监视元素的更改。但是,请勿设置valuetextarea的,而是valuetextarea的为其内容,因此设置textContent

var textarea = document.getElementById('myInput');

textarea.addEventListener('input', adjustSize);

setTimeout(write, 1000);

function adjustSize() {
  console.log('adjustSize');
}

function write() {
  // Don't set the value, change the content
  textarea.textContent = 'new textarea value';
}


// Options for the observer (which mutations to observe)
const config = { attributes: true, childList: true, subtree: true };

// Create an observer instance linked to the callback function
const observer = new MutationObserver(adjustSize);

// Start observing the target node for configured mutations
observer.observe(textarea, config);

// Later, you can stop observing
//observer.disconnect();
.myInput {

}
<textarea id="myInput" class="myInput">
  I am textarea
</textarea>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

值更改时,HTML select onChange不会触发

来自分类Dev

下拉值更改时更新html表

来自分类Dev

html onclick事件未触发

来自分类Dev

在输入字段更改时更改HTML

来自分类Dev

在更改时触发跨度文本/ html

来自分类Dev

值更改时未触发Datagrid datatrigger

来自分类Dev

如何在 HTML 选择中的值更改时显示 Google 地图

来自分类Dev

实际未更改时如何触发属性更改事件

来自分类Dev

如何使用JavaScript滚动事件更改HTML输入

来自分类Dev

jQuery中未触发值更改事件

来自分类Dev

jQuery中未触发值更改事件

来自分类Dev

RadGridView中单元格的值更改时如何触发事件?

来自分类Dev

变量值更改时触发事件

来自分类Dev

如何单击Bootstrap 4输入组内部的HTML输入以触发绑定的Angular事件

来自分类Dev

如何在输入更改时显示HTML5验证消息?

来自分类Dev

更新Angular ng模型中的HTML输入值更改

来自分类Dev

Textinput或Textarea值更改MeteorJS上的触发事件

来自分类Dev

窗口更改时如何触发事件?

来自分类Dev

哈希位置更改时如何触发事件

来自分类Dev

标签文本更改时如何触发事件

来自分类Dev

窗口更改时如何触发事件?

来自分类Dev

哈希位置更改时如何触发事件

来自分类Dev

如何触发HTML表单的onsubmit事件?

来自分类Dev

如何更改HTML上的textarea大小?

来自分类Dev

如何更改HTML上的textarea大小?

来自分类Dev

离子输入值更改时如何更改其属性“名称”?

来自分类Dev

当php返回值更改时,使用javascript更新html代码

来自分类Dev

简单的 pug html 表单,使其在值更改时立即发送,而不是等待提交按钮

来自分类Dev

当输入值以编程方式更改时,如何触发JQuery change事件?

Related 相关文章

热门标签

归档