使用Javascript计算和显示文本框中的字符数

使用Javascript计算和显示文本框中的字符数,javascript,jquery,textbox,count,Javascript,Jquery,Textbox,Count,我正在从事一个项目,该项目要求我计算文本框中输入的字符数,并在页面的其他位置动态显示结果 正如我所说,这最好用jQuery或Javascript来完成 提前感谢。您可以在jQuery中执行此操作(因为您说您更喜欢它),假设您希望字符计数显示在id为=“characters”的div中: 更新:(由Dreami提供) 更新2:更新以包括长按按键。 <script Language="JavaScript"> <!-- function Length_TextField_Vali

我正在从事一个项目,该项目要求我计算文本框中输入的字符数,并在页面的其他位置动态显示结果

正如我所说,这最好用jQuery或Javascript来完成


提前感谢。

您可以在jQuery中执行此操作(因为您说您更喜欢它),假设您希望字符计数显示在id为=“characters”的div中:

更新:(由Dreami提供)

更新2:更新以包括长按按键。


<script Language="JavaScript">
<!-- 
function Length_TextField_Validator()
{
   var len = form_name.text_name.value.length; //the length
   return (true);
}
-->
</script>

<form name="form_name" method="get" action="http://www.codeave.com/html/get.asp" 
onsubmit="return Length_TextField_Validator()">
<input type="text" name="text_name">
<input type="submit" value="Submit">
</form>
来源:


函数countChars(countfrom、displayto){
var len=document.getElementById(countfrom).value.length;
document.getElementById(displayto).innerHTML=len;
}

输入0个字符。

纯Javascript。

虽然问题已经解决,但我有兴趣分享我在一个项目中使用的一些东西:


Javascript代码:

函数countChar(val){
var len=val.value.length;
var ctext=len+“Chars”;
var str=val.value;
var部分=[];
var零件尺寸=160;
while(str){
如果(长度<零件尺寸){
var rtext=(partSize-str.length)+“剩余字符数”;
零件。推(str);
打破
}
否则{
零件推送(str.substr(0,零件尺寸));
str=str.substr(零件尺寸);
}
}
var ptext=parts.length+“parts”;
$('#text character').val(ctext);
$(“#文本部分”).val(ptext);
$('文本剩余').val(rtext);
}
这是我的偏好:

<textarea></textarea>         
<span id="characters" style="color:#999;">400</span> <span style="color:#999;">left</span>

我想分享我的答案,我用在我的项目,它是工作良好

<asp:TextBox ID="txtComments" runat="server" TextMode="MultiLine" Rows="4" Columns="50" placeholder="Maximum limit: 100 characters"></asp:TextBox><br />
<span id="spnCharLeft"></span>

<script type='text/javascript'>
    $('#spnCharLeft').css('display', 'none');
    var maxLimit = 100;
    $(document).ready(function () {
        $('#<%= txtComments.ClientID %>').keyup(function () {
            var lengthCount = this.value.length;              
            if (lengthCount > maxLimit) {
                this.value = this.value.substring(0, maxLimit);
                var charactersLeft = maxLimit - lengthCount + 1;                   
            }
            else {                   
                var charactersLeft = maxLimit - lengthCount;                   
            }
            $('#spnCharLeft').css('display', 'block');
            $('#spnCharLeft').text(charactersLeft + ' Characters left');
        });
    });
</script>

一年后你帮了我!谢谢你,伙计!如果有人想尝试(像我一样),我制作了一个JSFIDLE:它不会在右键单击和粘贴时触发。您可以在('input',updateCount')上使用
$('textarea')windows平台不将换行符计为2个字符吗?在这个例子中,它被算作一个。我在JSFIDLE中尝试了这个方法,但没有成功。你知道为什么吗?@unidha你也需要包括Jquery,因为底部3行上的$符号表示Jquery用于选择元素。这不会在右键单击和粘贴时触发。您可以在('input',updateCount')上使用
$('textarea')这是正确的,但我想指出,如果要向元素添加文本内容,最好使用.textContent而不是.innerHTML,因为innerHTML将数据解析为HTML,而.textContent使用更快速的纯文本。
<textarea></textarea>         
<span id="characters" style="color:#999;">400</span> <span style="color:#999;">left</span>
$('textarea').keyup(updateCount);
$('textarea').keydown(updateCount);

function updateCount() {
var cs = [400- $(this).val().length];
$('#characters').text(cs);
}
<asp:TextBox ID="txtComments" runat="server" TextMode="MultiLine" Rows="4" Columns="50" placeholder="Maximum limit: 100 characters"></asp:TextBox><br />
<span id="spnCharLeft"></span>

<script type='text/javascript'>
    $('#spnCharLeft').css('display', 'none');
    var maxLimit = 100;
    $(document).ready(function () {
        $('#<%= txtComments.ClientID %>').keyup(function () {
            var lengthCount = this.value.length;              
            if (lengthCount > maxLimit) {
                this.value = this.value.substring(0, maxLimit);
                var charactersLeft = maxLimit - lengthCount + 1;                   
            }
            else {                   
                var charactersLeft = maxLimit - lengthCount;                   
            }
            $('#spnCharLeft').css('display', 'block');
            $('#spnCharLeft').text(charactersLeft + ' Characters left');
        });
    });
</script>