做一个Ionic的ComboBox

本文介绍如何在Ionic框架中使用HTML5的input和datalist标签实现下拉框输入过滤功能,解决了Input在ion-item中不生效的问题,并通过添加和移除类来控制焦点状态。

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

参考资料:随笔记录(一) ionic里集成H5下拉框输入过滤
一、材料:
       利用Html5的: input + datalist 标签

二、html

<div #pointNoItem class="item item-block item-md item-input" >
    <div class="item-inner">
        <div class="input-wrapper">
                <ion-label>监控点</ion-label>
                <input [(ngModel)]="pointNo" type="text" list="ide" class="text-input text-input-md" (blur)="blurInput()" (focus)="focusInput()"/>
                <datalist id="ide">
                    <option *ngFor="let item of pointList" value="{{item.PointNo}}">
                            {{item.PointNo}}
                    </option>
                </datalist>
        </div>
    </div>
    <div class="button-effect"></div>
</div>

想用这样做
        <ion-item>
            <ion-label>监控点</ion-label>
            <input [(ngModel)]="pointNo" type="text" />
           ....

        </ion-item>
发现Input 在 ion-item中不生效,最终用上面的方法,用div包起来 

三、TS / JS

// 获取组件元素(Html的#pointNoItem)的实例引用
@ViewChild('pointNoItem') pointNoItemRef: any;

// 失去焦点 (移除类)
private blurInput() {
    this.pointNoItemRef.nativeElement.classList.remove("input-has-focus", "item-input-has-focus");
}

// 获得焦点 (添加类)
private focusInput() {
        this.pointNoItemRef.nativeElement.classList.add("input-has-focus", "item-input-has-focus");         
}

四、效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值