Input 框中的 placeholder 属性获取焦点清空

本人在开发一个微信小程序时,遇到如下问题:
在这里插入图片描述 input 框获取了焦点,但是 placeholder 属性的值却仍然还在,必须输入任意数据后,该值才会隐藏,这会给用户一种不好的体验效果。

理想效果应为:
input 框一旦获取焦点,就隐藏 placeholder 属性的值
且失去焦点时,应当根据 input 框内是否有值来决定是否显示 placeholder 属性的值:若 input 框内有值,则不显示 placeholder 属性的值;反之,则显示。

一、在开发微信小程序时的实现方法大致如下:

① wxml 文件中的相关代码

首先在 wxml 文件中为 input 标签设置 onfocusonblur 两个事件,且 placeholder 属性的值从 js 文件中的 data 中获取。

            <input
                type="text"
                placeholder="{{placeholderContent}}"
                οnfοcus="handleOnfocus"
                οnblur="handleOnblur"
            />

补充:
onfocus:事件在对象获得焦点时发生,即当鼠标点击时,触发的事件。
onblur: 事件会在对象失去焦点时发生,即当鼠标点击另一处时所触发的事件。

② js 文件中的相关代码
Page({
  /**
   * 页面的初始数据
   */
  data: {
  	// placeholder 的内容
    placeholderContent: '【粤语】好听到爆的粤语歌单', 
  },
  
  // input 框失去焦点的回调
  handleOnfocus() {
    this.setData({
      placeholderContent: ''
    })
  },
  
  // input 框获得焦点的回调
  handleOnblur(event) {
    if (event.detail.value.trim()) {
      return;
    }
    this.setData({
      placeholderContent: '【粤语】好听到爆的粤语歌单'
    })
  }
})

二、在开发网页时的实现方法大致如下:

① html 文件中的相关代码

只需在标签中加入两段简短的 js 代码即可

	<input type="text" placeholder="请输入内容....."
	 onfocus="this.placeholder=''" 
	 onblur="this.placeholder='请输入内容.....'">

注意:此处未实现“根据 input 框内是否有值来决定是否显示 placeholder 属性的值”这一要求,读者可自行完善。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C澒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值