0

私はしばらくの間、非常に単純であると信じている問題に取り組んできましたが、解決できません。現在の例で関数にデータを渡す方法を教えてください。

状況は次のとおりです

ボタンで新しいフォーム要素を生成しています。しかし、新しいテキストエリアの単語数をカウントする機能を追加したいと思います。現在、最初の入力で機能させることができます。

HTML

<textarea class="cTxtW-<?php echo $k;?>" type="text" placeholder="50 word description"></textarea>
   <p id="count-<?php echo $k;?>"></p>
   <script>
      $( ".cTxtW-<?php echo $k;?>" ).keyup(function count('.cTxtW-<?php echo $k;?>', 'count-<?php echo $k;?>'));
   </script>

ページの上部にあるのは私のjavascriptです

<script type="text/javascript">

function count(txt, cnt){ 
    var txtVal = $(txt).val();
    var words = txtVal.trim().replace(/\s+/gi, ' ').split(' ').length;
    var chars = txtVal.length;
    if(chars===0){words=0;}
    $(cnt).html(words+' words');
}

</scirpt>

次のコードで新しいフィールドを追加しています

var addDivS = $('#addServ');
    var k = parseInt($("#lS").attr('rel'))+1;
    $('#addNewServ').on('click', function() {
        if(k<=5){
            var inputsS = '<textarea name="servTxt[]" style="margin:10px 0 0 0;width:560px;height:60px;" class="inpt cTxtW-'+k+'" type="text" placeholder="50 word description"></textarea><p id="count-'+k+'"></p>'
            $(inputsS).appendTo(addDivS);
        k++;}else alert('Maximum number of contacts reached.')
    return false;
    });

だから私の質問は - 新しく生成された textarea フィールドに基づいて単語数を表示する方法は?

4

1 に答える 1

0

これはうまくいくはずです...

<script>
    $( ".cTxtW-<?php echo $k;?>" ).keyup(function () {
        count('.cTxtW-<?php echo $k;?>', 'count-<?php echo $k;?>');
    });
</script>

count 関数の結果を のイベント ハンドラとして渡していましたkeyup。匿名関数に入れることで、イベントが発生したときにのみ実行されます。

于 2013-10-03T17:03:28.607 に答える