uni-app 给input框添加点击清空按钮

本文介绍如何利用Vue.js实现一个带有输入监听和清空功能的搜索框组件。该组件通过`value`双向绑定输入内容,并利用`@input`事件实时更新输入值。同时,使用`v-if`控制清空图标显示,当输入框有内容时显示清空图标,点击后清空输入并触发查询方法。

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

用value绑定输入的值,要通过@input事件监听,这个方法只要input值发生改变就会调用,v-if控制‘清空’这个图标,没值就不显示,我悟了!!!

效果图

在这里插入图片描述
在这里插入图片描述

<view slot="default" class="search_box">
	<text class="icon_search"></text>
	<input style="width: 280px;" :value="searchName" class="prompt" placeholder="请输入员工姓名" @input="theBlur"></input>
	<text v-if="searchName" class="icon_close" @click="close"></text>
</view>
<sript>
//methods
close:function(){
	this.searchName = ''
	this.queryByInput()
},
theBlur(e){
	console.log(e.target.value)
	this.searchName = e.target.value
	this.queryByInput()//查询列表调用的方法
}
<sript>
<style>
	.search_box {
		width: 400upx;
		height: 64upx;
		background-color: #f5f5f5;
		border-radius: 32upx;
		display: flex;
		align-items: center;
		padding: 0upx 40upx;
		.prompt {
			font-size: 28upx;
			color: #cccccc;
		}
	}
	
	.icon_search {
		background-image: url(../../static/nav/map_ic_search.png);
		background-position: center center;
		background-repeat: no-repeat;
		background-size: cover;
		width: 32upx;
		height: 28upx;
		margin-right: 20upx;
	}
	
	.icon_close {
		background-image: url(../../static/nav/del.png);
		background-position: center center;
		background-repeat: no-repeat;
		background-size: cover;
		width: 32upx;
		height: 28upx;
		margin-right: 10upx;
	}
</style>
### 如何在 uni-app清空 `uni-popup-dialog` 组件的输入值 为了有效管理并清空 `uni-popup-dialog` 的输入中的值,在 Vue.js 和 UniApp 结合使用的场景下,可以采用响应式变量来绑定输入的值。通过操作这个响应式的属性可以在任何时刻更新或清除其内容。 对于 `<uni-popup-dialog>` 组件而言,可以通过设置一个双向绑定的数据模型(model),该模型用于存储当前对话内的输入状态。当需要重置输入的内容时,只需简单地将此数据模型对应的变量设为空字符串即可实现目的[^1]。 具体来说: - 使用 `ref` 或者 `v-model` 来创建一个可变的状态用来保存用户的输入。 - 当关闭弹窗或者是特定事件触发的时候,手动把上述定义好的状态重新赋值为空字符从而达到清理的效果。 下面是一个具体的例子展示如何做到这一点: ```html <template> <view> <!-- 定义popup --> <uni-popup ref="inputDialog" type="dialog"> <uni-popup-dialog ref="inputClose" mode="input" title="输入内容" v-model="inputValue" placeholder="请输入内容" @confirm="handleConfirm" /> </uni-popup> <!-- 触发按钮 --> <button @click="openPopup">打开弹窗</button> </view> </template> <script setup> import { ref } from 'vue' // 创建一个响应式的变量来跟踪输入的值 const inputValue = ref('') function openPopup(){ // 打开之前先尝试清空之前的记录 inputValue.value = '' this.$refs.inputDialog.open() } function handleConfirm(value){ console.log(`用户确认提交: ${value}`) } </script> ``` 在这个实例里,每当调用 `openPopup()` 方法准备显示弹出层前都会执行一次初始化动作——即将 `inputValue` 设定为空串;而一旦用户完成了表单填写并点击了确认键,则会打印出最终的结果给开发者查看。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值