1
<script>
function textCounter(field,field2,maxlimit)
{
  var countfield = document.getElementById(field2);
  if( field.value.length > maxlimit ) 
  {
    field.value = field.value.substring( 0, maxlimit );
    return false;
  } 
  else 
  {
    countfield.value = maxlimit - field.value.length;
  }
}
</script>
<textarea onkeyup="textCounter(this,'counter',50);"  id="message"></textarea>
<input disabled maxlength="3" size="3" value="50" id="counter">

テキストエリアに数字や文字を入力するとき、カウントを減らすにはどうすればよいですか?

4

3 に答える 3

0
function textCounter(field,field2,maxlimit)
{
  var countfield = document.getElementById(field2);

コントロールがフォーム内にある場合 (そしておそらくフォーム内にある場合)、次を使用できます。

    var countfield = field.form[field2];

.

  if( field.value.length > maxlimit ) 
  {
    field.value = field.value.substring( 0, maxlimit );

うーん、それはちょっと厄介です。文字が多すぎることをユーザーに知らせて、値の編集はユーザーに任せてみませんか?

    return false;

それはまったく何もしません。

  } 
  else 
  {
    countfield.value = maxlimit - field.value.length;
  }
}

「else」があってはなりません。値を書き込むだけで、それが負の場合、ユーザーは文字数を削減する必要があることがわかります。したがって、関数は次のようになります。

function textCounter(field,field2,maxlimit)
{
    field.form[field2].value = maxlimit - field.value.length;
}

スクリプトをまったく必要としないmaxlength属性もあります。

于 2013-03-12T04:34:17.357 に答える
0

jQueryにタグを付けたので、ロードされていると仮定します... on changeイベントを使用してテキストエリアを監視します:http://api.jquery.com/change/

$('#message').change(function() {
  // do stuff to counter
});
于 2013-03-12T03:47:07.423 に答える
0

これを試して ...

function textCounter(field,field2,maxlimit)
{
  var countfield = document.getElementById(field2);
  var textfield = document.getElementById(field);
  countfield.value = maxlimit - textfield.value.length;
  if(countfield.value < 0)
  {
    textfield.value = textfield.value.substring(0,maxlimit);
    countfield.value = 0;
  }
}

<textarea onkeyup="textCounter('message','counter',50);"  id="message"></textarea>
<input disabled maxlength="3" size="3" value="50" id="counter">
于 2013-03-12T04:11:52.763 に答える