小程序中textarea点击按钮事件

本文介绍了一种解决textarea的blur事件晚于页面上tap事件的问题的方法。通过使用form的bindsubmit事件,可以在button点击时正确获取textarea的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

textarea 的 blur 事件会晚于页面上的 tap 事件,如果需要在 button 的点击事件获取 textarea,可以使用 form 的 bindsubmit

 

<view class="section">
  <form bindsubmit="bindFormSubmit">
    <textarea placeholder="form 中的 textarea" name="textarea"/>
    <button form-type="submit"> 提交 </button>
  </form>
</view>
Page({
  
  bindFormSubmit: function(e) {
    console.log(e.detail.value.textarea)
  }
})

重点是那个name值!!!!

### 关于微信小程序中 `textarea` 组件的事件处理 #### blur 事件tap 事件的时间顺序 当涉及到表单提交或按钮点击操作时,需要注意 `textarea` 的 `blur` 事件页面上的 `tap` 事件触发。这意味着如果希望在按钮点击事件中获取最新的 `textarea` 值,则应该考虑使用 `form` 表单并绑定其 `submit` 事件来代替直接监听按钮点击[^1]。 ```html <form bindsubmit="handleSubmit"> <textarea id="content"></textarea> <button form-type="submit">Submit</button> </form> ``` #### 处理用户输入而不影响显示内容 对于多行文本编辑场景下不推荐即时修改用户正在输入的文字,因此即使开发者为 `textarea` 设置了 `bindinput` 回调函数用于响应每次按键后的变化,该回调中的任何返回值都不会被应用到界面上去改变实际可见的内容。 ```javascript Page({ handleInput(event){ console.log('User input:', event.detail.value); // Do not modify the value directly here as it won't take effect on UI. } }) ``` #### 实现实时字数统计功能 为了提供更佳用户体验,在用户键入过程中动态展示已录入字符数量是一个常见需求。可以通过监听 `textarea` 上发生的每一次 `input` 事件,并据此更新界面某处用来指示剩余可用空间的信息[^2]。 ```javascript Page({ data:{ maxLength: 100, currentLength: 0 }, handleTextChange(e){ const inputValue = e.detail.value; this.setData({currentLength: inputValue.length}); if(inputValue.length > this.data.maxLength){ wx.showToast({ title:'超出限制', icon:'none' }); } } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yusirxiaer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值