sencha touch textfield clear event

前端 未结 3 1412
迷失自我
迷失自我 2020-12-21 08:43

I\'m trying to implement a list filter in a text field in sencha touch. For example, I\'d have a bunch of contacts, and when I typed in the field, it might filter by name. W

3条回答
  •  孤城傲影
    2020-12-21 09:06

    The problem is the little X is not added in by sencha touch. It is a feature of the "search" input with html5. To capture this event you need to look for the search event. How I solved this was I edited sencha-touch.js

    I modified -

        if (this.fieldEl) {
            this.mon(this.fieldEl, {
                focus: this.onFocus,
                blur: this.onBlur,
                keyup: this.onKeyUp,
                paste: this.updateClearIconVisibility,
                mousedown: this.onBeforeFocus,
                scope: this
            });
    

    to be -

        if (this.fieldEl) {
            this.mon(this.fieldEl, {
                focus: this.onFocus,
                blur: this.onBlur,
                keyup: this.onKeyUp,
                paste: this.updateClearIconVisibility,
                mousedown: this.onBeforeFocus,
                search: this.onSearch,
                scope: this
            });
    

    inside of Ext.form.Text = Ext.extend(Ext.form.Field, { ...

    Now in my implementation of the searchfield I can make a function called onSearch which will be called when the "search" event is called. Note that the "search" event is not only called for the X but for some things like the enter key. The bottom line is sencha touch 1.1 does not check for this event at all and it is the only time the X fires an event so the only solution is to modify sencha-touch.js.

提交回复
热议问题