1

我正在尝试将以下内容转换为通过单击按钮而不是在 keyup 事件上执行。这是一个文本限制器。用户输入文本,我想通过单击按钮将此文本限制(修剪)为 75 个字符。

<p>Type something in the textbox below: </p>
<textarea id="message" name="message" rows="4" cols="30"></textarea>
<div class="charLeft" id="countCharacter">75 characters left</div>


<script>
  function CountLeft(field, max) {
      if (field.val().length > max) 
          field.val(field.val().substring(0, max));
      else 
          jQuery(".charLeft").html((max - field.val().length) + " characters left");
  }

  jQuery("#message").keyup(

  function(event) {
      CountLeft(jQuery(this), 75); // you can increase or derease the number      depend on your need.
  }); 
</script>
4

2 回答 2

1

假设您的 html 中某处有一个按钮(未出现在您的问题中),例如:

<div id="your-button">Click Me</div>

那么这将达到我认为你想要的效果。现在只有在用户单击时才会修剪输入your-button

$('#your-button').click(function() {
    CountLeft($('#message'),75);
});

如果您也想保留原始行为(这是一个好主意,IMO),您可以这样做:

function CheckLength(input_selector,length) {
    return function() {
        CountLeft($(input_selector),length);
    }
}

var input_selector = '#message';
var input_length = 75;
$('#your-button').click(CheckLength(input_selector,input_length));
$('#message').keyup(CheckLength(input_selector,input_length));
于 2012-10-09T17:52:05.937 回答
0

我认为您不想使用按钮...您想检查每种键类型...keyup释放键盘按钮时引发的事件,如果我理解正确您的问题,您希望在何时引发事件您单击按钮,为此,您可以使用keydown此处描述的事件:http: //api.jquery.com/keydown/

$('#message').keydown(function(e) {
  CountLeft(jQuery(this), 75);
});
于 2012-10-09T17:56:51.960 回答