0

我有一个文本区域。用户在 textarea 中输入 X 个字符后,我希望触发一些不同的事件。

  • 将输入的前 X 个字符附加到另一个文本字段中。
  • 扩展文本区域以提供更多空间继续输入

我知道我可以在 jquery 中使用按键事件,但是在输入 25 个字符后如何触发事件?

我目前正在尝试这个:

$('#post-content-field').keyup(function () {
$('#post-title-field').val($("#post-content-field").val()).trigger('change');
                            });
4

4 回答 4

2

您可以.length在每次按键后检查 textarea 的值。如果大于等于25,抓取前几个字符,增加textarea高度。

$("textarea.affectMe").on("keyup", function(){
  if ( this.value.length >= 25 && !$(this).hasClass("done") ) {
    $(this).addClass("done");
    $(".threeChars").val( this.value.substring(0,25) );
  }
});

请注意,我正在向 textarea 添加一个类,因此当长度大于 25 时,我们不会在每次按键后一遍又一遍地执行此操作。

演示:http: //jsbin.com/afonar/edit#javascript,html

于 2012-05-10T19:04:08.120 回答
1

使用 jquery 和下面的 countChar 函数

 <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <script>
        function countChar(val){
                                var len = val.value.length;
                                if (len >= 500) {
                                    val.value = val.value.substring(0, 500);
                                }else {
                                    $('#charNum').text(500 - len);
                                }
        };
    </script>

在 HTML 中调用类似的函数

<textarea id="field" onkeyup="countChar(this)"></textarea>
<div id="charNum">
</div>

div 将显示字符数。你可以在函数内部做任何事情

参考:计算文本区域中的字符

于 2012-05-10T19:06:37.183 回答
1

那是供您参考的,您可以做任何您喜欢的事情。删除阻止您添加更多文本的行

请参阅下文

function countChar(val){
    var len = val.value.length;
     $('#charNum').text(len);
     if (len >= 500) {
                     // Copy
      }else {
            //DO anything
      }
};
于 2012-05-10T19:31:36.127 回答
0
$('textarea').bind('keyup', function(e){
    if(e.target.value.length === 25) {
        // do stuff
    }
});
于 2012-05-10T19:04:34.517 回答