0

我正在创建一个 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文件可以正常访问,但似乎没有调用该函数。为什么这不起作用?

4

3 回答 3

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');
    }
});
于 2013-04-05T17:46:42.267 回答
2

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

编辑:

它似乎适用于这个小提琴

于 2013-04-05T17:45:19.170 回答
1

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

$(function () {

   //put your code here

});

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

于 2013-04-05T17:43:45.533 回答