jQuery 限制输入字符串长度

前端技术 2023/09/05 JavaScript

我们后台做程序的时候,比如录入一篇文章,文章会有摘要,我们希望文章的字符长度是我们可以控制的,我们不希望它太长,比如限制只能输入250个字符,下面的代码实现了这种功能。

先来看一下效果图

代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset=\"utf-8\">
<title>无标题文档</title>
<script type=\"text/javascript\" src=\"http://apps.bdimg.com/libs/jquery/1.4.2/jquery.min.js\"></script>
<script type=\"text/javascript\">
(function ($) {
 // tipWrap: 提示消息的容器
 // maxNumber: 最大输入字符
 $.fn.artTxtCount = function (tipWrap, maxNumber) {
  var countClass = \'js_txtCount\',
   // 定义内部容器的CSS类名
   fullClass = \'js_txtFull\',
   // 定义超出字符的CSS类名
   disabledClass = \'disabled\'; // 定义不可用提交按钮CSS类名
  // 统计字数
  var count = function () {
    var btn = $(this).closest(\'form\').find(\':submit\'),
     val = $(this).val().length,
     // 是否禁用提交按钮
     disabled = {
      on: function () {
       btn.removeAttr(\'disabled\').removeClass(disabledClass);
      },
      off: function () {
       btn.attr(\'disabled\', \'disabled\').addClass(disabledClass);
      }
     };
    if (val == 0) disabled.off();
    if (val <= maxNumber) {
     if (val > 0) disabled.on();
     tipWrap.html(\'<span class=\"\' + countClass + \'\">\\u8FD8\\u80FD\\u8F93\\u5165 <strong>\' + (maxNumber - val) + \'</strong> \\u4E2A\\u5B57</span>\');
    } else {
     disabled.off();
     tipWrap.html(\'<span class=\"\' + countClass + \' \' + fullClass + \'\">\\u5DF2\\u7ECF\\u8D85\\u51FA <strong>\' + (val - maxNumber) + \'</strong> \\u4E2A\\u5B57</span>\');
    };
   };
  $(this).bind(\'keyup change\', count);
  return this;
 };
})(jQuery);
 
// demo
jQuery(function(){
// 批量
$(\'.autoTxtCount\').each(function(){
$(this).find(\'.text\').artTxtCount($(this).find(\'.tips\'), 140);
});
// 单个
$(\'#test\').artTxtCount($(\'#test_tips\'), 10);
});
</script>
<style>
/* demo */
body {
 font-size:75%;
 font-family:\'微软雅黑\';
}
#demo {
 width:500px;
}
#demo .help, #demo .help a {
 color:#999;
}
#demo form {
 margin:20px 0;
 padding:8px;
 background:#F4F4F4;
 border:1px solid #EDEDED;
}
#demo .tips {
 color:#999;
 padding:0 5px;
}
#demo .tips strong {
 color:#1E9300;
}
#demo .tips .js_txtFull strong {
 color:#F00;
}
#demo textarea.text {
 width:474px;
}
</style>
</head>
<body>
<div id=\"demo\">
 <h1>artTxtCount - 轻量级输入字数提示插件</h1>
 <p class=\"help\">$(\'#text\').artTxtCount($(\'#text_tips\'), 10);</p>
 <p class=\"help\">by tangbin. </p>
 <form class=\"autoTxtCount\" action=\"\" method=\"get\">
 <div>
  <textarea class=\"text\" name=\"\" cols=\"50\" rows=\"3\"></textarea>
 </div>
 <div>
  <button type=\"submit\">提交</button>
  <span class=\"tips\"></span> </div>
 </form>
 <form class=\"autoTxtCount\" action=\"\" method=\"get\">
 <div>
  <textarea class=\"text\" name=\"\" cols=\"50\" rows=\"3\"></textarea>
 </div>
 <div>
  <button type=\"submit\">提交</button>
  <span class=\"tips\"></span> </div>
 </form>
 jQuery文本框实时显示可输入字数并可禁止输入提示超出,强!
 <form action=\"\" method=\"get\">
 <input class=\"text\" id=\"test\" name=\"\" type=\"text\" />
 <span id=\"test_tips\" class=\"tips\"></span><br />
 <button type=\"submit\">提交</button>
 </form>
</div>
</body>
</html>

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持phpstudy。

本文地址:https://www.stayed.cn/item/13403

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。