Javascript textarea中的事件onchange在触摸UI之前不会触发
我有一个类似于twitter的tweet textarea的textarea的问题。在我的例子中,我需要限制textarea的长度,并在标签中显示长度 对于此端口,我有以下文本区域:Javascript textarea中的事件onchange在触摸UI之前不会触发,javascript,html,onchange,Javascript,Html,Onchange,我有一个类似于twitter的tweet textarea的textarea的问题。在我的例子中,我需要限制textarea的长度,并在标签中显示长度 对于此端口,我有以下文本区域: <textarea id="text_content" name="text_content" onkeyup="return limitCharacters(event,140);" onchange="updateCounter(this,140);"></textarea> 我不能在
<textarea id="text_content" name="text_content" onkeyup="return limitCharacters(event,140);" onchange="updateCounter(this,140);"></textarea>
我不能在同一个函数中同时执行这两个操作,因为在完成onkeyup事件后,按键的长度会发生变化。我会得到一个错误的长度
问题是onchange事件只有在我用鼠标触摸UI或者我切换到另一个窗口或类似情况时才会触发。onkeyup更改值后是否可以自动触发onchange?为什么需要让用户使用delete和backspace?这些措施已经奏效: JavaScript
为什么需要让用户使用delete和backspace?这些措施已经奏效: JavaScript javascript:
var elem = document.getElementById('dd');
var msg = document.getElementById('msg');
var len = 150;
function f(){
var v = elem.value;
if (v.length>len) elem.value = v.substring(0,len);
else
msg.innerHTML = v.length;
}
//elem.onchange = f;
elem.onkeyup = f;
elem.onkeydown = f;
html:
<textarea name="" id="dd" cols="30" rows="10"></textarea>
<p>message length :<span id="msg"></span></p>
如果你想要一个特定长度的文本
或者,您可以使用html属性行和列来控制文本区域的大小,以包含大致数量的字符
javascript:
var elem = document.getElementById('dd');
var msg = document.getElementById('msg');
var len = 150;
function f(){
var v = elem.value;
if (v.length>len) elem.value = v.substring(0,len);
else
msg.innerHTML = v.length;
}
//elem.onchange = f;
elem.onkeyup = f;
elem.onkeydown = f;
html:
<textarea name="" id="dd" cols="30" rows="10"></textarea>
<p>message length :<span id="msg"></span></p>
如果你想要一个特定长度的文本
或者,您可以使用html属性行和列来控制文本区域的大小,以包含大致数量的字符 change事件的工作原理如下,但是您可以添加keyup和keydown事件来控制文本的长度。好的,让我为您构建一个代码,然后我将onkeyup替换为onkeydown,将onchange替换为onkeyup,并按预期工作。谢谢@CME64不客气,很高兴我能提供帮助,我还在回答中发布了一个示例。更改事件是这样工作的,但是您可以添加keyup和keydown事件来控制文本的长度。好的,让我为您构建一个代码,然后我将onkeyup替换为onkeydown,将onchange替换为onkeyup,并按预期工作。谢谢@cme64不客气,很高兴我能帮上忙,我在回答中也贴了一个例子。你说得对,不需要特殊字符约束。谢谢你的回答你是对的,不需要特殊字符约束。谢谢你的回答
<textarea name="" id="dd" cols="30" rows="10"></textarea>
<p>message length :<span id="msg"></span></p>