textarea input 限制长度 实时监听

本文介绍在Vue项目中如何使用v-model监听textarea和input内容变化,实现输入长度限制。通过获取输入内容长度并与预设限制(如400字)比较,当超过限制时使用slice方法截取并显示前400个字符,确保内容不超过设定长度。
<div class="input">
  <textarea @input="descArea" name="" id="" cols="30" rows="10" v-model="textareaDesc" placeholder="请填写备注信息,如:需带个人简历、身份说明"></textarea>
   <p>{
  
  {zero}}/{
  
  {max}}</p>
</div>
<script>
export default {
  name: 'invitation',
  data() {
    return {
      list: ['待查阅', '已查阅', '已购买', '已邀约', '不合适'],
      textareaDesc: '',
      zero: '0',
      max: '400'
    };
  },
  methods: {
    descArea: function () {
      console.log(this.textareaDesc.length);
      console.log(this.textareaDesc);
      this.zero = this.textareaDesc.length;
      if (this.textareaDesc.length > 400) {
        this.zero = 400;
        this.textareaDesc = this.textareaDesc.slice(0, 401);
      }
    }
  }
};
</script>

   

### HTML 中通过 maxlength 属性限制 textarea 字符数 在现代浏览器中,可以直接使用 `maxlength` 属性来限制 `<textarea>` 的输入字符数量。此属性适用于大多数主流浏览器[^1]。 ```html <textarea name="message" id="message" maxlength="100"></textarea> ``` 当设置了 `maxlength` 后,用户无法继续输入超过指定长度的内容。对于超出部分,浏览器会自动阻止进一步输入操作[^1]。 ### 使用 JavaScript 实现更复杂的控制逻辑 如果需要更加灵活的控制方式,则可以借助 JavaScript 来实现: #### 方法一:监听 input 事件并截断过长内容 这种方法可以在每次用户输入时实时检测并处理超限情况。 ```javascript document.getElementById(&#39;message&#39;).addEventListener(&#39;input&#39;, function(event){ const maxLength = 100; if (this.value.length > maxLength) { this.value = this.value.slice(0, maxLength); } }); ``` #### 方法二:显示剩余字数提示 为了给用户提供更好的体验,还可以动态展示已输入字符的数量以及允许的最大字符数。 ```javascript const textArea = document.getElementById(&#39;message&#39;); const counterElement = document.querySelector(&#39;.counter&#39;); textArea.addEventListener(&#39;input&#39;, updateCounter); function updateCounter() { let remainingChars = 100 - textArea.value.length; counterElement.textContent = `${remainingChars} characters remaining`; } ``` 上述方法仅能够有效防止用户输入过多文字,还能及时反馈当前状态,提升用户体验[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值