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"

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 undefined.
PASS successfullyParsed is true

TEST COMPLETE

