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 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 回答
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 事件监视 textarea:http: //api.jquery.com/change/

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