Various tests for .willValidate property

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Existence of .willValidate
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"
PASS typeof controls[i].willValidate is "boolean"

Form association
PASS input.willValidate is true
PASS input.willValidate is true

Control name
PASS input.willValidate is true
PASS input.willValidate is true

Disabled control
PASS input.willValidate is false

Read-only control
PASS input.willValidate is false

Input types
PASS input.willValidate is true
PASS input.type = "button"; input.willValidate is false
PASS input.type = "submit"; input.willValidate is true
PASS input.type = "hidden"; input.willValidate is false
PASS input.type = "reset"; input.willValidate is false

Fieldset element
PASS document.getElementsByTagName("fieldset")[0].willValidate is false

Textarea element
PASS document.getElementsByTagName("textarea")[0].willValidate is true

Output element
PASS document.getElementsByTagName("output")[0].willValidate is false

Object element
PASS document.getElementsByTagName("object")[0].willValidate is false

Keygen element
PASS document.getElementsByTagName("keygen")[0].willValidate is false
PASS successfullyParsed is true

TEST COMPLETE

