2011-05-18 79 views
10
<input id="post" type="text" style="width:400px;"/> 

你知道,当你去一个网站,开始在文本框中输入,并且突然,你的键盘停止输入的东西,因为你已经达到了字符限制?字符限制在文本框

我该如何使这个文本框发生140个字符?

回答

27

使用maxlength属性。

<input id="post" type="text" style="width:400px;" maxlength="140" /> 
+1

为XHTML你会使用'maxlength'所有属性名是小写 – 2011-05-18 03:36:08

+0

@Matty F:干杯,我只是纠正,因为你评论:) – Town 2011-05-18 03:37:29

+1

从我几乎-1 - 为什么使用HTML属性时20行jQuery会做? > :( – RobG 2011-05-18 04:56:07

1
function limitChars(textid, limit, infodiv) { 
    var text = $('#'+textid).val(); 
    var textlength = text.length; 
    if(textlength > limit) { 
     $('#' + infodiv).html('You cannot write more then '+limit+' characters!'); 
     $('#'+textid).val(text.substr(0,limit)); 
     return false; 
    } 
    else { 
     $('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.'); 
     return true; 
    } 
} 

// Bind the function to ready event of document. 
$(function(){ 
    $('#comment').keyup(function(){ 
     limitChars('comment', 140, 'charlimitinfo'); 
    }) 
}); 
+0

我在你的答案中添加了代码标签,并删除了多余的结尾''。您可能想要整理缩进... – Town 2011-05-18 03:46:10

7

使用jQuery限制插件:http://jsfiddle.net/AqPQT/(演示)

<script src="http://jquery-limit.googlecode.com/files/jquery.limit-1.2.source.js"></script> 
<textarea ></textarea> 
<span id="left" /> 

$('textarea').limit('140','#left'); 

还看到:http://unwrongest.com/projects/limit/

如果你正在寻找一个SANS -jque ry解决方案,只需使用maxlength属性即可。

<input type="text" maxlength="140" /> 
+1

+1韦斯,这很方便,因为它还会返回剩余的字符。 – Town 2011-05-18 03:48:52

+0

这工作得很好。谢谢。 – carbontwelve 2013-11-27 12:51:46

+0

URL http://unwrongest.com/projects/limit/不再可用 – 2017-08-05 05:40:01

2

尝试这段代码..

var limitCount; 
 
function limitText(limitField, limitNum) 
 
{ 
 
    if (limitField.value.length > limitNum) 
 
    { 
 
    limitField.value = limitField.value.substring(0, limitNum); 
 
    } 
 
    else 
 
    { 
 
    if (limitField == '') 
 
    { 
 
     limitCount = limitNum - 0; 
 
    } 
 
    else 
 
    { 
 
     limitCount = limitNum - limitField.value.length; 
 
    } 
 
    } 
 
    if (limitCount == 0) 
 
    { 
 
     document.getElementById("comment").style.borderColor = "red"; 
 
     } 
 
    else 
 
    { 
 
     document.getElementById("comment").style.borderColor = ""; 
 
     } 
 
}
<input type="text" id="comment" name="comment" onkeyup="limitText(this,20);" onkeypress="limitText(this,20);" onkeydown="limitText(this,20);" />