我尝试在这个组合中使用所有这些:
<SCRIPT LANGUAGE="JavaScript">
function CountLeft(field, count, max)
{
if (field.value.length > max)
field.value = field.value.substring(0, max);
else
count.value = max - field.value.length;
}
</SCRIPT>
<input name="text" onKeyDown="CountLeft(this.form.text, this.form.left,50);"
onKeyUp="CountLeft(this.form.text,this.form.left,50);" onKeyPress="return entsub(event)">
<input readonly type="text" name="left" size=3 maxlength=3 value="50">
characters left
但是提交的回车键在这里不起作用,有人能告诉我如何解决这个问题吗? 哦,我想在这里做一个柜台。
谢谢!
答案 0 :(得分:3)
我也需要那个剧本,而Kooilnc给出的那个剧本并不适合我。我用过这个:
function keyhandler(obj,e,max){
e = e || event;
max = max || 140;
var keycode = e.keyCode
, len = 0
, This = keyhandler
, currlen = obj.value.length;
if (!('countfld' in This)){
This.countfld = document.getElementById('letter-count');
}
if (keycode === 13) {
//return document.forms[0].submit();
return true;
}
if (currlen >= max) {
This.countfld.innerHTML = '0';
return false;
}
This.countfld.innerHTML = (max - obj.value.length);
return true;
}
在我使用的HTML文件中:
<input type="text" onkeyup="return keyhandler(this,event,140)">
我希望它适合你! :d
答案 1 :(得分:2)
实际上,您不需要所有这些键控器。一个 keydown处理程序就足够了。
此处给定的函数keyhandler
在达到max
后停止更新文本输入值,并在按下的键为enter
时提交表单。你可以找到一个例子@ http://jsfiddle.net/KooiInc/2hrt7/。
<input type="text" onkeydown="return keyhandler(this,event,50)"/>
现在keyhandler看起来像这样:
function keyhandler(obj,e,max) {
e = e || event;
max = max || 50;
console.log(e.keyCode);
if (e.keyCode === 13) {
return document.forms[0].submit();
}
if (obj.value.length >= max && e.keyCode>46) {
return false;
}
return true;
}
顺便提一下,您知道文本输入字段的maxlength
属性吗?