单击按钮而不是键盘上执行脚本

时间:2012-10-09 17:47:10

标签: javascript count onclick words

我正在尝试转换以下内容,只需单击按钮即可执行,而不是在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>

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:0)

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

$('#message').keydown(function(e) {
  CountLeft(jQuery(this), 75);
});