2011-05-18 112 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);" />