NAME

GvaScript.Form - Helper functions for forms

SYNOPSIS

DESCRIPTION

This component helps to manage HTML forms with hierarchical fields and dynamically repeated sections. [explain]

METHODS

init

GvaScript.Form.init(form, initial_tree)

form is the id of a form (or directly the DOM element). Optional initial_tree is a javascript nested datastructure containing initial values for fields.

If the initial tree contains repeated data sets, then the corresponding repeated sections in the form are dynamically expanded (see "fill_from_tree").

[explain more]

to_hash

var flat_hash = GvaScript.Form.to_hash(form);

Inspects the contents of all fields in form and returns a flat hash of pairs (key-value).

to_tree

var tree = GvaScript.Form.to_tree(form);

Inspects the contents of all fields in form and returns a data tree, were dotted names in form names are expanded into sub-arrays or sub-hashes.

fill_from_tree

GvaScript.Form.fill_from_tree(form, field_prefix, tree);

Fills the form from values found in tree. Optional field_prefix is prepended to key names in tree for finding the corresponding form fields. If the initial tree contains repeated data sets, then the corresponding repeated sections in the form are dynamically expanded.

[explain more]

expand_hash

var tree = GvaScript.Form.expand_hash(flat_hash);

Transforms a flat structure of key-value pairs into a nested tree structure, by splitting keys on dots. The idea and algorithm come from "expand_hash" in CGI::Expand.