javascript oninput 只触发一次?
javascript oninput fires only once?
我有一个 JavaScript 函数只触发一次的问题。
我从函数中的一个更简洁的结构开始,但将它分解成离散的操作,看看我是否能找出任何东西。完全一样。
在我的 HTML 中,在 HEAD 标签中,我有:
<SCRIPT>
function onCharInput()
{
var conpagechars = document.getElementById("pagecontentx").innerHTML;
var conpagecharcount = conpagechars.length.toString();
document.getElementById("pccount").innerHTML = conpagecharcount;
console.log('test',conpagecharcount);
}
</SCRIPT>
在打开的 CGI textarea 输入元素中,我有这个:
id="pagecontentx" oninput="onCharInput()"
在页面的其他地方,我有这个:
<span id="pccount"></span>
当我在文本区域中键入内容时,跨度会更新为内容的正确大小——恰好一次。之后,它什么都不做。我可以添加字符,删除字符......什么都没有。添加控制台调用后,打开 firefox 控制台,我也只看到一次结果。据我所知,该函数在第一次之后就再也不会被调用了。
TIA
对于 CGI 文本区域,数据是这样获取的:
var conpagechars = document.getElementById("pagecontentx").value;
不是这样的:
var conpagechars = document.getElementById("pagecontentx").innerHTML;
很简单。 ;)
每次有输入事件时都会触发该函数,您每次都只是在读取相同的字符串。
<textarea>
的 innerHTML
表示其 默认值 。
您需要阅读 value
属性 以获取其 当前 值。
document.querySelector("textarea").addEventListener("input", log);
function log(event) {
console.log("Log function is firing");
console.log("Current value: " + this.value);
console.log("Default value: " + this.innerHTML);
}
<textarea>This is the default value</textarea>
我有一个 JavaScript 函数只触发一次的问题。
我从函数中的一个更简洁的结构开始,但将它分解成离散的操作,看看我是否能找出任何东西。完全一样。
在我的 HTML 中,在 HEAD 标签中,我有:
<SCRIPT>
function onCharInput()
{
var conpagechars = document.getElementById("pagecontentx").innerHTML;
var conpagecharcount = conpagechars.length.toString();
document.getElementById("pccount").innerHTML = conpagecharcount;
console.log('test',conpagecharcount);
}
</SCRIPT>
在打开的 CGI textarea 输入元素中,我有这个:
id="pagecontentx" oninput="onCharInput()"
在页面的其他地方,我有这个:
<span id="pccount"></span>
当我在文本区域中键入内容时,跨度会更新为内容的正确大小——恰好一次。之后,它什么都不做。我可以添加字符,删除字符......什么都没有。添加控制台调用后,打开 firefox 控制台,我也只看到一次结果。据我所知,该函数在第一次之后就再也不会被调用了。
TIA
对于 CGI 文本区域,数据是这样获取的:
var conpagechars = document.getElementById("pagecontentx").value;
不是这样的:
var conpagechars = document.getElementById("pagecontentx").innerHTML;
很简单。 ;)
每次有输入事件时都会触发该函数,您每次都只是在读取相同的字符串。
<textarea>
的 innerHTML
表示其 默认值 。
您需要阅读 value
属性 以获取其 当前 值。
document.querySelector("textarea").addEventListener("input", log);
function log(event) {
console.log("Log function is firing");
console.log("Current value: " + this.value);
console.log("Default value: " + this.innerHTML);
}
<textarea>This is the default value</textarea>