JQuery动态添加元素然后更新它

时间:2011-11-29 17:14:04

标签: jquery

我正在尝试使用一个小脚本在文本框或textarea之后插入用户使用了多少个字符,剩下的是什么。为了做到这一点,我正在寻找具有MVC3添加数据验证的DOM对象。

我希望我的JQuery脚本在文本框后自动插入标记,然后在每次按键后更新它。我可以让它插入标签,但我无法弄清楚如何让它更新它。我已添加以下代码:

// controls character input/counter
$("[data-val-length-max]").keyup(function (e) {
var $this = $(this),
    charLength = $this.val().length,
    charLimit = $this.attr("data-val-length-max");
// Displays count
var $chars = $this.nextAll("<span>");

if ($chars != "null") {
    $chars.html(charLength + " of " + charLimit + " characters used");
}
else {
    $this.after("<span>" + charLength + " of " + charLimit + " characters used" + "</span>").addClass("block");
}
// Alert when max is reached
//    if ($this.val().length > charLimit) {
//        $this.nextAll("span").html("<strong>You may only have up to " + charLimit + " characters.</strong>");
//    }
});

我仍然是JQuery的新手,我为可能是一些糟糕的编码道歉!它可能值得声明,单个页面中会有多个字符限制文本框实例,因此脚本需要确保它只为其自身添加/更新跨度而不是任何其他元素。

1 个答案:

答案 0 :(得分:0)

更改您的if条件:

$chars != "null"
$chars.size() // size returns 0 if it found no elements

我通过在这个小提琴中解决一些其他问题来解决它:http://jsfiddle.net/mAMM5/1/