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

実際には、これらすべてのキーハンドラーは必要ありません。1 つのキーダウン ハンドラーで十分です。

ここで指定された関数は、 に達しkeyhandlerた後にテキスト入力値の更新を停止しmax、押されたキーが だった場合にフォームを送信しますenter@ http://jsfiddle.net/KooiInc/2hrt7/で例を見つけることができます。

<input type="text" onkeydown="return keyhandler(this,event,50)"/>

キーハンドラーは次のようになります。

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 に答える