我有一个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
答案 0 :(得分:1)
每次有输入事件时,该函数都会触发,您每次只读取相同的字符串。
innerHTML
的{{1}}代表其默认值。
您需要阅读<textarea>
属性才能获得当前值。
value
&#13;
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);
}
&#13;
答案 1 :(得分:0)
对于CGI textareas,数据以这种方式获取:
var conpagechars = document.getElementById("pagecontentx").value;
不是这样的:
var conpagechars = document.getElementById("pagecontentx").innerHTML;
足够简单。 ;)