jQuery字符数 - 函数未被调用

时间:2013-04-05 17:40:44

标签: javascript jquery forms

我正在创建一个jQuery函数来计算文本字段中的字符数并输出数字。但它似乎没有被要求发布密钥。包含文本字段的页面是包含在index.php中的外部页面,js包含在外部js文件中。

  $('#commentField').keyup(function () {
    alert("functionCalled");
    var max = 500;
    var len = $(this).val().length;
    if (len >= max) {
      $('#charNum').html(' you have reached the limit');
    } else {
      var char = max - len;
      $('#charNum').text(char + ' characters left');
    }
  });

文字区域:

<input type="text" name="commentArea" placeholder="Comment..." autofocus="autofocus" id="commentField"/>

要填充的div

<div id="charNum">here</div>

外部js文件正在访问正常,但似乎没有调用该函数。为什么这不起作用?

3 个答案:

答案 0 :(得分:4)

如果是动态内容,则需要调用.on。但是,我会将'body'改为更接近dom中元素的东西。

$('body').on('keyup','#commentField',function () {
    alert("functionCalled");
    var max = 500;
    var len = $(this).val().length;
    if (len >= max) {
      $('#charNum').html(' you have reached the limit');
    } else {
      var char = max - len;
      $('#charNum').text(char + ' characters left');
    }
});

答案 1 :(得分:2)

char是javascript中的保留字,因此您的keyup函数不会编译。尝试使用其他名称。

编辑:

它似乎适用于this fiddle

答案 2 :(得分:1)

您的事件处理程序是否在文档就绪函数内?

$(function () {

   //put your code here

});

接下来,在您的事件绑定时,您的输入是否存在于页面上?换句话说,你的元素是动态添加的吗?如果是这样,请尝试事件委派。