我正在使用在html上制作的表单中的文本区域字段,并且处理由php完成。我想限制用户可以在文本区域中输入的字符数。有什么方法可以做到这一点,因为文本区域字段随后被存储到 mysql 数据库中,因此我必须根据字段的 varchar 值限制用户数据。
有什么帮助吗?
您可以通过在
文本区域标签上设置maxlength
属性(如 HTML 中的<textarea maxlength="120"></textarea>
)来限制这一点,另外还可以通过substr()
函数在 PHP 中"剪切"输入字符串。
正如s.webbandit提到的,你可以使用maxlength
,但请注意,这是HTML5中引入的新功能,正如W3学校关于<textarea>
的文章一样,所以"防弹"解决方案需要Javascript。因此,直到版本 10 才支持 Internet Explorer maxlength
,而在 Opera 中则完全不受支持。
这里有一种方法可以使用Javascript来帮助你:
<script language="javascript" type="text/javascript">
function charLimit(limitField, limitCount, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
} else {
limitCount.value = limitNum - limitField.value.length;
}
}
</script>
然后你可以像这样使用它(原始来源):
<textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);">
</textarea>
这应该让你开始。
这是通过JavaScript限制文本区域长度的一种非常简单的方法。
文本区域字段:
<input class='textField' type='text' NAME='note1' value='' onkeyup='charLimit(this, 40);'>
JavaScript 函数:
function charLimit(limitField, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);}
}
当用户键入超过 40 个字符时,它只会删除它们。
我已经尝试了很多不同的方法来限制文本区域中的文本,我发现的最好的方法(客户端)是jQuery.Maxlength.js插件。简单快速,涵盖所有内容!
第 1 步。包括最大长度插件脚本
<script language="javascript" src="jquery.maxlength.js"></script>
第 2 步。将最大长度属性添加到
<textarea maxlength="35"
rows="5" cols="30" name="address"></textarea>
第 3 步。初始化插件
<script type="text/javascript">
$(document).ready(function($) {
//Set maxlength of all the textarea (call plugin)
$().maxlength();
})
</script>
https://github.com/viralpatel/jquery.maxlength
<script type="text/javascript">
$(document).ready(function(){
var maxChars = $("#sessionNumtext");
var max_length = maxChars.attr('maxlength');
if (max_length > 0) {
maxChars.bind('keyup', function(e){
length = new Number(maxChars.val().length);
counter = max_length-length;
$("#sessionNum_counter").text(counter);
});
}
});
</script>
<textarea name="sessionNumtext" id="sessionNumtext" maxlength="20" type="text"></textarea>
kalan karakter sayısı: <span id="sessionNum_counters">20</span>