【问题标题】:how to limit number of characters in a textarea field processing php?如何限制处理 php 的 textarea 字段中的字符数?
【发布时间】:2012-05-15 04:04:36
【问题描述】:

我正在使用基于 html 的表单中的 textarea 字段,并且处理由 php 完成。我想限制用户可以在 textarea 中输入的字符数。有什么办法可以做到这一点,因为 textarea 字段然后存储到 mysql 数据库中,因此我必须根据字段的 varchar 值来限制用户数据。

有什么帮助吗?

【问题讨论】:

    标签: php html textarea character limit


    【解决方案1】:

    您可以通过在 textarea 标签上设置 maxlength 属性来限制这一点,例如 HTML 中的 <textarea maxlength="120"></textarea>,另外还可以通过 substr() 函数在 PHP 中“剪切”输入字符串。

    【讨论】:

    • 非常感谢!这给了一个想法如何去做!基本上我感到困惑的是设置你刚刚建议如何使用的 maxlength!
    • 这仅适用于 IE10+、Firefox、Chrome、Safari。但不是 Opera。
    • 请注意,在 html 中设置 maxlength 并不能保证字符串的长度。如果将此值发送到服务器,它还应该验证最大长度。该值的一个有用的预处理是将 '\r\n' 也替换为 '\n'。
    【解决方案2】:

    s.webbandit 所述,您可以使用 maxlength,但请注意这是 HTML5 中引入的新功能,因为 W3 Schools article 关于 <textarea>,所以“防弹”解决方案需要 Javascript。所以 maxlength 在 Internet Explorer 版本 10 之前支持,而在 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>
    

    然后你可以像这样使用它 (original source):

        <textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);">
        </textarea>
    

    这应该能让你继续前进。

    【讨论】:

    • 你的onKeyDown属性有函数命名错误,"charLimiti"应该是"charLimit"
    【解决方案3】:

    这是通过 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 个字符时,它只会删除它们。

    【讨论】:

      【解决方案4】:

      我尝试了很多不同的方法来限制文本区域中的文本,我发现最好的方法(客户端)是使用 jQuery.Maxlength.js 插件。简单快速,涵盖所有内容!

      步骤 1. 包含 Maxlength 插件脚本

      <script language="javascript" src="jquery.maxlength.js"></script>
      

      步骤 2. 将 maxlength 属性添加到

      <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

      【讨论】:

        【解决方案5】:
        <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>
        

        【讨论】:

        • 最好也提供一些细节,解释等,而不仅仅是代码。只是一个想法:)
        猜你喜欢
        • 2011-06-02
        • 2018-12-31
        • 2016-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多