2017-10-30 2 views
0

私のページのテキスト領域から入力の長さをチェックしようとしています。このために、私は以下のように行っている:私はこれを行うと、「コメントボタンを追加」をクリックの上、私はそれより多くの場合は複数回の警告を取得Jqueryのいくつかのイベントで複数の呼び出しを停止する方法は?

<script type="text/javascript"> 
    $(document).ready(function(){ 

    $('#reviews_comment').bind('input propertychange', function() { 

    var review = $('#reviews_comment').val() 
     if(review.length>=4){ 
      $('#comment_button').show(); 
      $('#comment_button').on('click',function(){ 
      alert($('#reviews_comment').val()); 
      }) 
     } 
     }) 

    }); 
    </script> 

<textarea id="reviews_comment" name="comment" value="<?php echo $this->input->post('comment'); ?>" ></textarea> 
    <button style="display: none;" id="comment_button" class="btn btn-success" >Add Comment</button> 

関連するスクリプトは下の通りです4文字入力します。しかし、もし私がちょうど4文字を入力すると、それは1回だけ警告します。また、私がreview.lengthに警告するとき、それは4から入力された文字数まで警告します。 ここで本当の問題は何ですか?どのような助けも高く評価されます。ありがとう。

picture

+0

使用 'コンソール.log() 'を使用して、' alert'ではなく入力値を表示します。 –

+0

私はしましたが、結果は私が今追加した写真のようになります。 –

+1

'.bind'は使わないでください。現在のバージョンのjQueryでは '.on'に直接マップされます。したがって、代わりに '.bind'を使用すると、実際にはほんのわずかではありますが、パフォーマンスにはあまり意味がありません。 '.bind'は将来のバージョンからいつでも削除されるかもしれません。 '.bind'を使い続ける理由はなく、代わりに' .on'を好むあらゆる理由があります。 – VTodorov

答えて

2

あなたがテキストエリアに入力する文字ごとのクリックイベントを追加しています。クリックイベントは1つだけ追加する必要があります。イベント

$(document).ready(function() { 

    $('#reviews_comment').bind('input propertychange', function() { 

    var review = $('#reviews_comment').val() 
    if (review.length >= 4) { 
     $('#comment_button').show(); 

    } 
    }) 
    $('#comment_button').on('click', function() { 
    alert($('#reviews_comment').val()); 
    }) 
}); 

http://jsfiddle.net/7uj6xt68/

+0

ご協力いただきありがとうございます。 :) –

+0

@ SuzAannshresthaあなたはこの回答に合格とマークする必要があります –

+1

@AlivetoDie https://meta.stackexchange.com/questions/50697/time-limit-on-accepting-an-answer –

1

移動を結合:

$(document).ready(function() { 

     $('#reviews_comment').bind('input propertychange', function() { 

      var review = $('#reviews_comment').val() 
      if (review.length >= 4) { 
       $('#comment_button').show(); 

      } 
     }); 
     $('#comment_button').on('click', function() { 
      alert($('#reviews_comment').val()); 
     }); 

    }); 

デモ:http://jsfiddle.net/GCu2D/2208/イベントがテキストエリアに再び毎回ユーザーが何かをrebindedさ

+0

ありがとうございましたありがとうございます。 –

関連する問題