2013-10-03 81 views
0

我一直在努力寻找一个问题,我认为这很简单,但我无法解决。你能告诉我如何在当前的例子中传递数据给我的函数。jquery将数据传递到函数

情况如下

我正在用按钮生成新的表单元素。但是我想添加计算新textareas字数的功能,目前我只能将它用于第一个输入。

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字段显示我的字数?

回答

0

这应该工作...

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

你被传递计数功能为keyup事件处理程序的结果。通过将其置于匿名函数中,它将只在偶数发生时运行。

+0

谢谢阿彻,你能告诉我如何将这行添加到附加的HTML,因为我不能追加因为它关闭标签。 ''这必须在某种程度上追踪

标签,以便我可以在每个新的textarea后添加它。对? – Ando

+0

谢谢你。你关于绑定到textarea的建议很好。 – Ando

+0

理想情况下,你会有脚本一次,并使其适用于所有textareas。我不确定你的脚本标记问题是什么,因为你通过php添加它们。我只有通过javascript本身添加脚本标记才遇到问题。 – Archer