Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F884198
TextBox.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
TextBox.js
View Options
if
(
!
dojo
.
_hasResource
[
"dijit.form.TextBox"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dijit.form.TextBox"
]
=
true
;
dojo
.
provide
(
"dijit.form.TextBox"
);
dojo
.
require
(
"dijit.form._FormWidget"
);
dojo
.
declare
(
"dijit.form.TextBox"
,
dijit
.
form
.
_FormWidget
,
{
// summary:
// A generic textbox field.
// Serves as a base class to derive more specialized functionality in subclasses.
// trim: Boolean
// Removes leading and trailing whitespace if true. Default is false.
trim
:
false
,
// uppercase: Boolean
// Converts all characters to uppercase if true. Default is false.
uppercase
:
false
,
// lowercase: Boolean
// Converts all characters to lowercase if true. Default is false.
lowercase
:
false
,
// propercase: Boolean
// Converts the first character of each word to uppercase if true.
propercase
:
false
,
// maxLength: String
// HTML INPUT tag maxLength declaration.
maxLength
:
""
,
templateString
:
"<input class=\"dojoTextBox\" dojoAttachPoint='textbox,focusNode' name=\"${name}\"\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse,onfocus:_onMouse,onblur:_onMouse,onkeyup,onkeypress:_onKeyPress'\n\tautocomplete=\"off\" type=\"${type}\"\n\t/>\n"
,
baseClass
:
"dijitTextBox"
,
attributeMap
:
dojo
.
mixin
(
dojo
.
clone
(
dijit
.
form
.
_FormWidget
.
prototype
.
attributeMap
),
{
maxLength
:
"focusNode"
}),
getDisplayedValue
:
function
(){
return
this
.
filter
(
this
.
textbox
.
value
);
},
getValue
:
function
(){
return
this
.
parse
(
this
.
getDisplayedValue
(),
this
.
constraints
);
},
setValue
:
function
(
value
,
/*Boolean, optional*/
priorityChange
,
/*String, optional*/
formattedValue
){
var
filteredValue
=
this
.
filter
(
value
);
if
((
typeof
filteredValue
==
typeof
value
)
&&
(
formattedValue
==
null
||
formattedValue
==
undefined
)){
formattedValue
=
this
.
format
(
filteredValue
,
this
.
constraints
);
}
if
(
formattedValue
!=
null
&&
formattedValue
!=
undefined
){
this
.
textbox
.
value
=
formattedValue
;
}
dijit
.
form
.
TextBox
.
superclass
.
setValue
.
call
(
this
,
filteredValue
,
priorityChange
);
},
setDisplayedValue
:
function
(
/*String*/
value
){
this
.
textbox
.
value
=
value
;
this
.
setValue
(
this
.
getValue
(),
true
);
},
forWaiValuenow
:
function
(){
return
this
.
getDisplayedValue
();
},
format
:
function
(
/* String */
value
,
/* Object */
constraints
){
// summary: Replacable function to convert a value to a properly formatted string
return
((
value
==
null
||
value
==
undefined
)
?
""
:
(
value
.
toString
?
value
.
toString
()
:
value
));
},
parse
:
function
(
/* String */
value
,
/* Object */
constraints
){
// summary: Replacable function to convert a formatted string to a value
return
value
;
},
postCreate
:
function
(){
// setting the value here is needed since value="" in the template causes "undefined"
// and setting in the DOM (instead of the JS object) helps with form reset actions
this
.
textbox
.
setAttribute
(
"value"
,
this
.
getDisplayedValue
());
this
.
inherited
(
'postCreate'
,
arguments
);
if
(
this
.
srcNodeRef
){
dojo
.
style
(
this
.
textbox
,
"cssText"
,
this
.
style
);
this
.
textbox
.
className
+=
" "
+
this
[
"class"
];
}
this
.
_layoutHack
();
},
_layoutHack
:
function
(){
// summary: work around table sizing bugs on FF2 by forcing redraw
if
(
dojo
.
isFF
==
2
&&
this
.
domNode
.
tagName
==
"TABLE"
){
var
node
=
this
.
domNode
;
var
old
=
node
.
style
.
opacity
;
node
.
style
.
opacity
=
"0.999"
;
setTimeout
(
function
(){
node
.
style
.
opacity
=
old
;
},
0
);
}
},
filter
:
function
(
val
){
// summary: Apply various filters to textbox value
if
(
val
==
undefined
||
val
==
null
){
return
""
;
}
else
if
(
typeof
val
!=
"string"
){
return
val
;
}
if
(
this
.
trim
){
val
=
dojo
.
trim
(
val
);
}
if
(
this
.
uppercase
){
val
=
val
.
toUpperCase
();
}
if
(
this
.
lowercase
){
val
=
val
.
toLowerCase
();
}
if
(
this
.
propercase
){
val
=
val
.
replace
(
/[^\s]+/g
,
function
(
word
){
return
word
.
substring
(
0
,
1
).
toUpperCase
()
+
word
.
substring
(
1
);
});
}
return
val
;
},
// event handlers, you can over-ride these in your own subclasses
_onBlur
:
function
(){
this
.
setValue
(
this
.
getValue
(),
(
this
.
isValid
?
this
.
isValid
()
:
true
));
},
onkeyup
:
function
(){
// TODO: it would be nice to massage the value (ie: automatic uppercase, etc) as the user types
// but this messes up the cursor position if you are typing into the middle of a word, and
// also trimming doesn't work correctly (it prevents spaces between words too!)
// this.setValue(this.getValue());
}
}
);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 6, 10:25 (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25718
Default Alt Text
TextBox.js (4 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment