Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F885676
test_validate.html
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
13 KB
Subscribers
None
test_validate.html
View Options
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<
html
>
<
head
>
<
title
>
Test TextBox Validation Widgets
</
title
>
<
script
type
=
"text/javascript"
src
=
"../../../dojo/dojo.js"
djConfig
=
"isDebug: true, parseOnLoad: true, extraLocale: ['de-de', 'en-us']"
></
script
>
<
script
type
=
"text/javascript"
src
=
"../_testCommon.js"
></
script
>
<
script
type
=
"text/javascript"
>
dojo
.
require
(
"dijit.form.TextBox"
);
dojo
.
require
(
"dijit.form.ValidationTextBox"
);
dojo
.
require
(
"dijit.form.NumberTextBox"
);
dojo
.
require
(
"dijit.form.CurrencyTextBox"
);
dojo
.
require
(
"dojo.currency"
);
dojo
.
require
(
"dojo.parser"
);
// scan page for widgets and instantiate them
</
script
>
<
style
type
=
"text/css"
>
@
import
"../../../dojo/resources/dojo.css"
;
@
import
"../css/dijitTests.css"
;
.
testExample
{
background-color
:
#fbfbfb
;
padding
:
1
em
;
margin-bottom
:
1
em
;
border
:
1
px
solid
#bfbfbf
;
}
.
small
{
width
:
3
em
;
}
.
medium
{
width
:
10
em
;
}
.
long
{
width
:
20
em
;
}
.
verylong
{
width
:
90
%
;
}
.
noticeMessage
{
color
:
#093669
;
font-size
:
0.95
em
;
margin-left
:
0.5
em
;
}
.
dojoTitlePaneLabel
label
{
font-weight
:
bold
;
}
</
style
>
</
head
>
<
body
>
<
h1
class
=
"testTitle"
>
Dijit Validation Widgets
</
h1
>
<!-- to test form submission, you'll need to create an action handler similar to
http://www.utexas.edu/teamweb/cgi-bin/generic.cgi -->
<
form
id
=
"form1"
action
=
""
name
=
"example"
method
=
"post"
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q01"
>
First Name:
</
label
>
<
span
class
=
"noticeMessage"
>
TextBox class,
<
b
>
tabIndex=2
</
b
>
, Attributes: {trim: true, propercase: true, style: 'width:700px'}, First letter of each word is upper case.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q01"
type
=
"text"
name
=
"firstname"
value
=
"testing testing"
style
=
"width: 700px;"
tabIndex
=
2
dojoType
=
"dijit.form.TextBox"
trim
=
"true"
onChange
=
"dojo.byId('oc1').value=arguments[0]"
propercase
=
"true"
/>
<
br
>
onChange:
<
input
id
=
"oc1"
size
=
"34"
disabled
value
=
"not fired yet!"
autocomplete
=
"off"
>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q02"
>
Last Name:
</
label
>
<
span
class
=
"noticeMessage"
>
TextBox class, Attributes: {trim: true, uppercase: true, class: 'verylong'}, all letters converted to upper case.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q02"
type
=
"text"
name
=
"lastname"
value
=
"testing testing"
class
=
"verylong"
dojoType
=
"dijit.form.TextBox"
trim
=
"true"
uppercase
=
"true"
/>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q03"
>
Age:
</
label
>
<
span
class
=
"noticeMessage"
>
NumberTextBox class,
<
b
>
tabIndex=1
</
b
>
, Attributes: {trim: true}, no initial value specified.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q03"
type
=
"text"
name
=
"age"
tabIndex
=
1
dojoType
=
"dijit.form.NumberTextBox"
promptMessage
=
"(optional) Enter an age between 0 and 120"
maxLength
=
3
class
=
"small"
constraints
=
"{places:0,min:0,max:120}"
onChange
=
"console.debug('onChange fired for widget id = ' + this.id + ' with value = ' + arguments[0]);"
/>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q04"
>
Occupation:
</
label
>
<
span
class
=
"noticeMessage"
>
ValidationTextBox class,
Attributes: {lowercase: true, required: true, class: verylong, style: font-size: 15pt;}. Displays a prompt message if field is missing.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q04"
type
=
"text"
name
=
"occupation"
class
=
"verylong"
style
=
"font-size:15pt;"
dojoType
=
"dijit.form.ValidationTextBox"
lowercase
=
"true"
required
=
"true"
promptMessage
=
"Enter an occupation"
/>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q05"
>
Elevation:
</
label
>
<
span
class
=
"noticeMessage"
>
IntegerTextBox class,
Attributes: {required: true, min:-20000, max:+20000 }, Enter feet above sea level with a sign.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q05"
class
=
"small"
/>
onChange:
<
input
id
=
"oc5"
size
=
"10"
disabled
value
=
"not fired yet!"
autocomplete
=
"off"
>
</
div
>
<
script
>
// See if we can make a widget in script and attach it to the DOM ourselves.
dojo
.
addOnLoad
(
function
(){
var
props
=
{
name
:
"elevation"
,
value
:
3000
,
constraints
:
{
min
:-
20000
,
max
:
20000
,
places
:
0
},
promptMessage
:
"Enter a value between -20000 and +20000"
,
required
:
"true"
,
invalidMessage
:
"Invalid elevation."
,
onChange
:
function
(){
dojo
.
byId
(
'oc5'
).
value
=
arguments
[
0
]},
"class"
:
"medium"
};
var
w
=
new
dijit
.
form
.
NumberTextBox
(
props
,
"q05"
);
});
</
script
>
<!--
<div class="dojoTitlePaneLabel">
<label for="attach-here">Population: </label>
<span class="noticeMessage">IntegerTextBox class,
Attributes: {trim: true, required: true, signed: false, separator: ","}. <br><b> This widget was added in script, not markup. </b> </span>
</div>
<div class="testExample" >
<input id="attach-here" type="text" name="population" class="medium" value="1500000"/>
</div>
<script>
// See if we can make a widget in script and attach it to the DOM ourselves.
dojo.addOnLoad(function(){
var props = {
name: "population",
value: "1,500,000",
trim: "true",
required: "true",
regExpGen: dojo.regexp.integer,
constraints: {signed:false, separator: ","},
invalidMessage: "Invalid population. Be sure to use commas."
};
var w = new dijit.form.ValidationTextBox(props, "attach-here");
});
</script>
<div class="dojoTitlePaneLabel">
<label for="q06">Real Number: </label>
<span class="noticeMessage">RealNumberTextBox class,
Attributes: {trim: true, required: true}. Enter any sort of real number.</span>
</div>
<div class="testExample">
<input id="q06" type="text" name="real1" class="medium" value="+0.1234"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.realNumber"
trim="true"
required="true"
invalidMessage="This is not a valid real number." />
</div>
<div class="dojoTitlePaneLabel">
<label for="q07">Exponential Notation: </label>
<span class="noticeMessage">RealNumberTextBox class,
Attributes: {exponent: true}. Enter a real number in exponential notation.</span>
</div>
<div class="testExample">
<input id="q07" type="text" name="real2" class="medium" value="+0.12"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.realNumber"
trim="true"
required="true"
constraints={exponent:true}
invalidMessage="Number must be in exponential notation. Example +5E-28" />
</div>
-->
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q08"
>
Annual Income:
</
label
>
<
span
class
=
"noticeMessage"
>
CurrencyTextBox class,
Attributes: {fractional: true}. Enter whole and cents. Currency symbol is optional.
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q08"
type
=
"text"
name
=
"income1"
class
=
"medium"
value
=
"54775.53"
dojoType
=
"dijit.form.CurrencyTextBox"
required
=
"true"
constraints
=
"{fractional:true}"
currency
=
"USD"
onChange
=
"dojo.byId('oc8').value=arguments[0]"
invalidMessage
=
"Invalid amount. Include dollar sign, commas, and cents. Cents are mandatory."
/>
USD
onChange:
<
input
id
=
"oc8"
size
=
"15"
disabled
value
=
"not fired yet!"
autocomplete
=
"off"
>
</
div
>
<
div
class
=
"testExample"
>
euro currency (local format) fractional part is optional:
<
input
id
=
"q08eur"
type
=
"text"
name
=
"income2"
class
=
"medium"
value
=
"54775.53"
dojoType
=
"dijit.form.CurrencyTextBox"
required
=
"true"
currency
=
"EUR"
invalidMessage
=
"Invalid amount. Include dollar sign, commas, and cents."
/>
EUR
</
div
>
<!--
It is unusual to override the lang properties on individual
widgets. Usually it should be the user's default or set on
a page basis by the server. This is for testing purposes
-->
<
div
class
=
"testExample"
>
euro currency (fixed lang: de-de) programmatically created, fractional part is optional:
<
input
id
=
"q08eurde"
class
=
"medium"
/>
EUR
</
div
>
<
script
>
// See if we can make a widget in script and attach it
// to the DOM ourselves.
dojo
.
addOnLoad
(
function
(){
var
example
=
dojo
.
currency
.
format
(
54775.53
,
{
locale
:
'de-de'
,
currency
:
"EUR"
});
var
props
=
{
name
:
"income3"
,
value
:
54775.53
,
lang
:
'de-de'
,
required
:
"true"
,
currency
:
"EUR"
,
invalidMessage
:
"Invalid amount. Example: "
+
example
};
var
w
=
new
dijit
.
form
.
CurrencyTextBox
(
props
,
"q08eurde"
);
});
</
script
>
<!--
<div class="dojoTitlePaneLabel">
<label for="q08a">Annual Income: </label>
<span class="noticeMessage">Old regexp currency textbox,
Attributes: {fractional: true}. Enter dollars and cents.</span>
</div>
<div class="testExample">
<input id="q08a" type="text" name="income3" class="medium" value="
$
54,775.53"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.currency"
trim="true"
required="true"
constraints={fractional:true}
invalidMessage="Invalid amount. Include dollar sign, commas, and cents. Example:
$
12,000.00" />
</div>
<div class="dojoTitlePaneLabel">
<label for="q09">IPv4 Address: </label>
<span class="noticeMessage">IpAddressTextBox class,
Attributes: {allowIPv6: false, allowHybrid: false}. Also Dotted Hex works, 0x18.0x11.0x9b.0x28</span>
</div>
<div class="testExample">
<input id="q09" type="text" name="ipv4" class="medium" value="24.17.155.40"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.ipAddress"
trim="true"
required="true"
constraints={allowIPv6:false,allowHybrid:false}
invalidMessage="Invalid IPv4 address.">
</div>
<div class="dojoTitlePaneLabel">
<label for="q10"> IPv6 Address: </label>
<span class="noticeMessage">IpAddressTextBox class,
Attributes: {allowDottedDecimal: false, allowDottedHex: false}.
Also hybrid works, x:x:x:x:x:x:d.d.d.d</span>
</div>
<div class="testExample">
<input id="q10" type="text" name="ipv6" class="long" value="0000:0000:0000:0000:0000:0000:0000:0000"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.ipAddress"
trim="true"
uppercase = "true"
required="true"
constraints={allowDottedDecimal:false, allowDottedHex:false, allowDottedOctal:false}
invalidMessage="Invalid IPv6 address, please enter eight groups of four hexadecimal digits. x:x:x:x:x:x:x:x">
</div>
<div class="dojoTitlePaneLabel">
<label for="q11"> URL: </label>
<span class="noticeMessage">UrlTextBox class,
Attributes: {required: true, trim: true, scheme: true}. </span>
</div>
<div class="testExample">
<input id="q11" type="text" name="url" class="long" value="http://www.xyz.com/a/b/c?x=2#p3"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.url"
trim="true"
required="true"
constraints={scheme:true}
invalidMessage="Invalid URL. Be sure to include the scheme, http://..." />
</div>
<div class="dojoTitlePaneLabel">
<label for="q12"> Email Address </label>
<span class="noticeMessage">EmailTextBox class,
Attributes: {required: true, trim: true}. </span>
</div>
<div class="testExample">
<input id="q12" type="text" name="email" class="long" value="fred&barney@stonehenge.com"
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.emailAddress"
trim="true"
required="true"
invalidMessage="Invalid Email Address." />
</div>
<div class="dojoTitlePaneLabel">
<label for="q13"> Email Address List </label>
<span class="noticeMessage">EmailListTextBox class,
Attributes: {required: true, trim: true}. </span>
</div>
<div class="testExample">
<input id="q13" type="text" name="email" class="long" value="a@xyz.com; b@xyz.com; c@xyz.com; "
dojoType="dijit.form.ValidationTextBox"
regExpGen="dojo.regexp.emailAddressList"
trim="true"
required="true"
invalidMessage="Invalid Email Address List." />
</div>
-->
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q22"
>
Regular Expression
</
label
>
<
span
class
=
"noticeMessage"
>
RegexpTextBox class,
Attributes: {required: true}
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q22"
type
=
"text"
name
=
"phone"
class
=
"medium"
value
=
"someTestString"
dojoType
=
"dijit.form.ValidationTextBox"
regExp
=
"[\w]+"
required
=
"true"
invalidMessage
=
"Invalid Non-Space Text."
>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"q23"
>
Password
</
label
>
<
span
class
=
"noticeMessage"
>
(just a test that type attribute is obeyed)
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"q23"
type
=
"password"
name
=
"password"
class
=
"medium"
dojoType
=
"dijit.form.TextBox"
>
</
div
>
<
div
class
=
"dojoTitlePaneLabel"
>
<
label
for
=
"ticket1651"
>
Trac ticket 1651:
</
label
>
<
span
class
=
"noticeMessage"
>
value: null should show up as empty
</
span
>
</
div
>
<
div
class
=
"testExample"
>
<
input
id
=
"ticket1651"
class
=
"medium"
value
=
"not null"
/>
</
div
>
<
script
>
// See if we can make a widget in script and attach it to the DOM ourselves.
dojo
.
addOnLoad
(
function
(){
var
props
=
{
name
:
"ticket1651"
,
id
:
"mname"
,
value
:
null
};
var
w
=
new
dijit
.
form
.
TextBox
(
props
,
"ticket1651"
);
});
</
script
>
<
script
>
function
displayData
()
{
var
f
=
document
.
getElementById
(
"form1"
);
var
s
=
""
;
for
(
var
i
=
0
;
i
<
f
.
elements
.
length
;
i
++
)
{
var
elem
=
f
.
elements
[
i
];
if
(
elem
.
name
==
"button"
)
{
continue
;
}
s
+=
elem
.
name
+
": "
+
elem
.
value
+
"\n"
;
}
alert
(
s
);
}
</
script
>
<
div
>
<
button
name
=
"button"
onclick
=
"displayData(); return false;"
>
view data
</
button
>
<
input
type
=
"submit"
name
=
"submit"
/>
</
div
>
</
form
>
</
body
>
</
html
>
File Metadata
Details
Attached
Mime Type
text/html
Expires
Sun, Apr 6, 18:27 (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26974
Default Alt Text
test_validate.html (13 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment