Opened 10 years ago

Closed 9 years ago

#14053 closed defect (fixed)

dojox.mobile.TextBox selectonclick doesn't work

Reported by: rjones Owned by: Douglas Hays
Priority: high Milestone: 1.8
Component: DojoX Mobile Version: 1.7.0b1
Keywords: dojox.mobile.TextBox selectonclick Cc:
Blocked By: Blocking:

Description

looking at http://download.dojotoolkit.org/release-1.7.0b6/dojo-release-1.7.0b6/dojox/mobile/tests/inputApp/

The last example, "Select On Click Text Input" doesn't select the value of the input box.

Change History (6)

comment:1 Changed 10 years ago by ykami

Milestone: 1.7tbd
Owner: changed from ykami to Shane O'Sullivan

comment:2 Changed 10 years ago by James Thomas

Looking into this, the TextBoxMixin?'s onFocus method expects the following arguments:

_onFocus: function(/*String*/ by){
}

which corresponds to the function being called by from "dijit/focus.js"

dijit/focus.js:
345:	   widget._onFocus(by);

However, the Dojo Mobile input fields (TextArea? & TextBox?) don't use the focus manager to handle focus events, instead connecting directly to the "onfocus' event, as seen here:

35:	postCreate: function(){
36:		this.inherited(arguments);
37:		this.connect(this.textbox, "onfocus", "_onFocus");
38:		this.connect(this.textbox, "onblur", "_onBlur");
39:	}

This causes the following clause in "_onFocus" to fail, not running the selection code to run, as by is the event object not a text string.

if(this.selectOnClick && by == "mouse"){

I'm not sure what's the best way to fix this, as it appears dojo mobile widgets intentionally don't use the focus manager.

Version 1, edited 10 years ago by James Thomas (previous) (next) (diff)

comment:3 Changed 10 years ago by Douglas Hays

Owner: changed from Shane O'Sullivan to Douglas Hays

comment:4 Changed 10 years ago by Douglas Hays

Milestone: tbd1.7.2
Status: newassigned

comment:5 Changed 9 years ago by Douglas Hays

Milestone: 1.7.21.8

comment:6 Changed 9 years ago by Douglas Hays

Resolution: fixed
Status: assignedclosed

In [27702]:

Fixes #14053. Emulate dijit's focusmanager by calling _onFocus("mouse") for touch/focus to enable selectOnClick.

Note: See TracTickets for help on using tickets.