1

キーアップイベントではなく、ボタンのクリックで実行されるように以下を変換しようとしています。テキストリミッターです。ユーザーがテキストを入力し、ボタンをクリックするだけでこのテキストを 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 に答える