html 输入框添加清空按钮,【已解决】小程序中给input输入框内部右边添加关闭按钮清除输入内容...

本文详细介绍了如何在微信小程序中为input输入框内部添加一个清除按钮,以便点击后能清除输入内容。通过调整样式和监听事件,实现了输入框内显示清除按钮,并在点击时同步更新input的value值,确保显示的值也被清空,同时还处理了输入过长时按钮与文字不重叠的问题。

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

现在已经实现了小程序中的input输入框的功能了:

但是现在想要在输入框input内部的右边加上一个clear close的button,用于点击清除输入:

45b80ed0e4eb94f8efc6d92c21ca6df4.png

类似于已有web版中的效果:

0aadb7a8077f882695ee45fedcd0a14e.png

小程序 输入框 清除 按钮

被人是用image实现的

自己去找找,记得小程序中有icon的

是有要的:

8d840684aabd441886d2abddf7e873e7.jpg

先去显示这个clear的icon

然后去参考:

的代码:

23d950966938ebc753708ebaea288d67.png

先用代码:

显示出来清除按钮了:

c714e27565e8fed58964f2042bb1a653.png

然后再去想办法看看能否让其在input的内部靠右显示出来

参考:

-》

c48c6e948fd7668b14d970dcabeac298.png

以及自己之前的web版:

0366142c190c3f8a0e34f028ce736488.png

去折腾试试

此处基本上实现了要的效果

不过遇到了:

虽然清空了内部的值,但是input显示的值,还存在:

cfcbae924fede71153ff5c6576c00a35.png

b82a75867e5ad0858d2d28c0987d33b3.png

所以要去解决:

小程序 清空 input

把value绑定一个值即可

去试试:

value="">

改为:

value="{{curInputValue}}">

果然可以:

c6a23f1c24ef3a68e0ceb502805ed441.png

【总结】

此处用:

pages/index/index.wxml

id="queryInput"

bindinput='inputCallback'

bindconfirm="inputConfirmCallback"

type="text"

placeholder="请输入要查询的英文绘本名称"

value="{{curInputValue}}">

class="clear_button"

type="clear"

size="18"

bindtap='clearInput'

/>

查询

pages/index/index.wxss.input_and_query{

height: 28px;

vertical-align: center;

margin-bottom: 44px;

display: flex;

width: 100%;

}

#queryInput{

font-size: 13px;

border-radius: 16px;

border: 1px solid #ced4da;

margin-left: 39px;

/* flex:0 0 80%; */

/* flex-grow: 4; */

flex: 1 1 70%;

/* text-indent: 8px; */

padding-left: 8px;

padding-right: 28px;

position: relative;

}

.clear_input{

align-items: center;

justify-content: center;

right: 6px;

position: absolute;

bottom: 4px;

z-index: 10;

}

.show_clear{

display: flex;

}

.hide_clear{

display: none;

}

.clear_button{

}

pages/index/index.jsPage({

data: {

curInputValue: "",

isShowClear: false,

},

//事件处理函数

inputCallback: function (e) {

console.log("inputCallback: e=%o", e)

this.setData({

curInputValue: e.detail.value

})

console.log("curInputValue=%s", this.data.curInputValue)

var isShowClear = false

if (this.data.curInputValue){

isShowClear = true

} else {

isShowClear = false

}

this.setData({

isShowClear: isShowClear

})

},

clearInput: function (e) {

console.log("clearInput: e=%o", e)

this.setData({

curInputValue: "",

isShowClear: false

})

},

})

即可实现效果:

cd6035cc0387bf2ecfce685fe88d87ba.png

输入了点内容:

cc5171834190c73da4a0f108fb908cd4.png

点击清除按钮后,即可清除内部的值,同时内部的值curInputValue同步到input的value上,input的显示的值也清空了:

07a3cd7ef4e7b1197b40035375c56dbd.png

且还支持,输入足够长的内容后,右边padding的位置,不会被清除按钮遮盖和重叠:

4dfb31ec55e59dc7e10f8e4a0ca4fd9b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值