我正在尝试使用一个小脚本在文本框或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的新手,我为可能是一些糟糕的编码道歉!它可能值得声明,单个页面中会有多个字符限制文本框实例,因此脚本需要确保它只为其自身添加/更新跨度而不是任何其他元素。
答案 0 :(得分:0)
更改您的if条件:
$chars != "null"
$chars.size() // size returns 0 if it found no elements
我通过在这个小提琴中解决一些其他问题来解决它:http://jsfiddle.net/mAMM5/1/