我的jquery事件没有被解雇?

时间:2014-05-30 18:02:24

标签: jquery

我基本上是在尝试实施:

$(function() {
var maxWords = 10;
var wordCounts = {};
$("#a").keyup(function() {
    var matches = this.value.match(/\b/g);
    wordCounts[this.id] = matches ? matches.length / 2 : 0;
    var finalCount = 0;
    $.each(wordCounts, function(k, v) {
        finalCount += v;
    });
    $('#finalcount').val('Words: ' + finalCount);
    if(finalCount > maxWords){
        $("#a").val(a.value.slice(0,-2));
    };
}).keyup();
});

以下是我使用的示例:http://jsfiddle.net/YJVPZ/80/

我的版本在这里:http://jsfiddle.net/FsbJ3/

由于某种原因,我的工作不起作用。我并不是很了解jquery或javascript事件,所以我确信有些东西我很遗憾,但对于我的生活,我无法弄清楚是什么。我要做的是限制数量可以进入textarea框的单词。任何建议>非常感谢你。

1 个答案:

答案 0 :(得分:3)

未定义变量“a”,id

也不存在元素
$("#a").val(a.value.slice(0,-2)); // throws error "a is not defined"

您可以使用“this”来引用您选择的#a元素:

$("#a").val(this.value.slice(0,-2));  // "this" refers to "#a"

Working Example (jsfidde)


或者,您可以使用additional_comments.value来引用元素的id。这就是您使用的示例引用“a”的方式,但您已将代码中元素的id更改为“additional_comments”:

$("#additional_comments").val(additional_comments.value.slice(0,-2));

http://jsfiddle.net/FsbJ3/7/