textarea验证字数

本文探讨了如何在HTML的textarea元素中实现字数限制和验证功能,包括前端JavaScript的解决方案以及后端验证的重要性,旨在确保用户输入符合指定的字符限制。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style type="text/css">
    </style>
</head>
<body>
<form>
    <table border="0" cellpadding="0" cellspacing="0" width="500px;">
        <tr>
            <td align="right">
                <textarea id="content" cols="50" rows="10" style="overflow: auto;"></textarea>
            </td>
        </tr>
        <tr>
            <td align="right">
                <div style="vertical-align: bottom; height: 20px; line-height: 20px; margin: 0px; color: Gray;">
                    <label id="info2" style="float: right; font-size: 12px;">个字</label>
                    <span id="info" style="float: right; font-size: 20px; font-weight: bold;">140</span>
                    <label id="info1" style="float: right; font-size: 12px;">还能输入</label>
                </div>
            </td>
        </tr>
    </table>
</form>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
    $(function() {
        $("#content").keyup(check);   
        $("#content").onpaste(check);  //粘贴文本时执行
    });
    function check() {
        var str = $("#content").val();
        var len = strlen(str);
        var info = 140 - len;
        info = info + "";
        if (info.indexOf('.') > 0)
            info = info.substring(0, info.indexOf('.'));
        if (len <= 140) {
            $("#info1").html("还能输入");
            $("#info").css('color', 'gray');
            $("#info").html(info);
        } else {
            info = info.substr(1)
            $("#info1").html("超出");
            $("#info").css('color', 'red');
            $("#info").html(info);
        }
    }
    
    function trim(str) {
        return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');
    }
    function strlen(str) {
        var str = trim(str);
        var len = 0;
        for (var i = 0; i < str.length; i++) {
            len += str.charCodeAt(i) > 0 && str.charCodeAt(i) < 255 ? 0.5 : 1;
        }
        return len;
    }
</script>
</body>
</html>
实现 `textarea` 输入框的字数限制可以通过多种方式完成,包括使用 JavaScript 或 jQuery 进行动态处理,或者直接使用 HTML 的 `maxlength` 属性。以下是几种常见的实现方法: ### 使用 HTML 的 `maxlength` 属性 HTML 提供了 `maxlength` 属性,可以直接限制用户在 `textarea` 中输入的最大字符数。这是最简单的方法,但它的限制是不能提供实时的字数提示。 ```html <textarea id="taContent" rows="3" maxlength="20"></textarea> ``` ### 使用 JavaScript 进行动态限制 通过 JavaScript 可以在用户输入时动态检查并截断超出限制的内容。这种方法还可以结合提示信息,告诉用户剩余的字数。 ```html <textarea id="textarea_catch_ask" oninput="checkMaxLength(this, 200, 'catchask_con_counter_num')"></textarea> <div class="textarea_con_counter">还能输入<strong id="catchask_con_counter_num">200</strong>字</div> ``` ```javascript function checkMaxLength(obj, maxLength, counterId) { var value = obj.value; if (value.length > maxLength) { obj.value = value.substring(0, maxLength); } document.getElementById(counterId).innerText = maxLength - obj.value.length; } ``` ### 使用 jQuery 进行实时监控和提示 jQuery 提供了更灵活的方式来监听用户的输入事件,并实时更新已输入的字数和剩余字数。这种方法可以提供更好的用户体验。 ```html <textarea id="wishContent" class="wishContent"></textarea> <div>已输入<span class="wordsNum_v1">0</span>字</div> ``` ```javascript $(document).ready(function () { $(".wishContent").on("input propertychange", function () { var userDesc = $(this).val(); var maxLength = 255; var len = userDesc ? (userDesc.length > maxLength ? maxLength : userDesc.length) : 0; $(".wordsNum_v1").html(len); $(".wordsNum_v1").css("color", "rgb(51,51,51)"); }); }); ``` ### 验证并提示超出字数限制 可以使用 JavaScript 来验证输入内容并在超出限制时显示提示信息,同时更新已输入的字数。 ```html <textarea id="input" oninput="Huitextarealength(this)"></textarea> <div><em class="textarea-length">0</em>/<am>100</am></div> ``` ```javascript var Huitextarealength = function (obj) { var html = $(obj).parent(); var total = html.find('am').html(); var sets = $(obj).val().length; if (sets > total) { var str = '<div style="width: auto;position: absolute; right: 4%;color: red;">内容超出限制</div>'; $(obj).after(str); html.find('em').css({ color: 'red' }); } else { $(obj).parent().find('div').remove(); html.find('em').css({ color: 'black' }); } html.find('em').html(sets); }; ``` 以上方法可以根据具体需求选择使用,既能实现字数限制,也能提供用户友好的提示信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值