0

我尝试在这个组合中使用所有这里:

<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

但是提交的输入键在这里不起作用,谁能告诉我如何解决这个问题?哦,我想在这里做一个柜台。

谢谢!

4

2 回答 2

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

于 2012-11-23T11:39:40.457 回答
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文本输入字段的属性吗?

于 2011-03-26T14:38:19.687 回答