输入关键字失去焦点后重新获得

<input type="text" name="account" value='输入关键字' onFocus="if(this.value=='输入关键字'){this.value=''}" οnblur="if(this.value==''){this.value='输入关键字'}"/>

可以使用 uni-app 中的自定义组件来实现该需求。下面是一个简单的示例: 1. 在 `components` 目录下创建一个名为 `dropdown` 的文件夹,并在该文件夹中创建以下文件: `dropdown.vue`: ```vue <template> <div class="dropdown"> <input type="text" v-model="keyword" @focus="showList = true" @blur="onBlur" @input="filterList"> <ul v-show="showList"> <li v-for="(item, index) in filteredList" :key="index" @click="onSelect(item)">{{ item }}</li> </ul> </div> </template> <script> export default { props: { list: { type: Array, required: true } }, data() { return { keyword: '', showList: false } }, computed: { filteredList() { return this.list.filter(item => item.includes(this.keyword)) } }, methods: { onSelect(item) { this.keyword = item this.showList = false this.$emit('select', item) }, filterList() { this.showList = true }, onBlur() { setTimeout(() => { this.showList = false }, 200) } } } </script> <style scoped> .dropdown { position: relative; } ul { position: absolute; top: 100%; left: 0; margin: 0; padding: 0; list-style: none; border: 1px solid #ccc; background-color: #fff; } li { padding: 4px 8px; cursor: pointer; } li:hover { background-color: #f0f0f0; } </style> ``` 2. 在父组件中使用 `dropdown` 组件,并传入需要显示的下拉列表数据: ```vue <template> <div class="container"> <h1>Dropdown Component Example</h1> <dropdown :list="options" @select="onSelect"></dropdown> <p>Selected Value: {{ selectedValue }}</p> </div> </template> <script> import Dropdown from '@/components/dropdown.vue' export default { components: { Dropdown }, data() { return { options: ['apple', 'banana', 'cherry', 'date', 'elderberry'], selectedValue: '' } }, methods: { onSelect(value) { this.selectedValue = value } } } </script> <style> .container { max-width: 800px; margin: 0 auto; padding: 20px; } </style> ``` 在上述代码中,我们使用 `v-model` 指令将输入框的值绑定到 `keyword` 数据属性上。在输入获得焦点失去焦点时,分别设置 `showList` 属性为 `true` 和 `false`,以控制下拉列表的显示和隐藏。在输入输入内容时,使用 `computed` 计算属性过滤出符合条件的列表项。在用户选择下拉列表项时,将选中的值传递给父组件,同时将输入框的值设为选中的值,并隐藏下拉列表。 注意:这只是一个简单的示例,实际项目中需要根据实际需求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值