在textarea中输入数字或字符时如何减少计数

时间:2013-03-12 03:43:02

标签: php javascript jquery

<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">

在textarea中输入数字或字符时,如何减少计数?

3 个答案:

答案 0 :(得分:0)

由于您标记了jQuery,我将假设您已将其加载...使用on change事件监视textarea:http://api.jquery.com/change/

$('#message').change(function() {
  // do stuff to counter
});

答案 1 :(得分: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">

答案 2 :(得分: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属性,根本不需要任何脚本。