Hidden elements can be easily created on a Drupal form. When the form is submitted,
$form_state variable seems to be holding the value of this element in various hooks, "form_alter", "validate", etc.
Note that if you have an ajax call or a jquery code which assigns or modifies the value of the hidden element, this value will not be sent when the form is submitted. For eg, An hidden element is created from -
$form['field'] = array( '#type' => 'hidden', '#value' => 0, . . );
To make your hidden element submit your jquery updated value to
$form_state variable, you need to make use of
#default_value property instead of
$form['field']['#default_value'] = 0;
This field can now be updated on form load using jquery and the updated value will be seen in
$form_state after submission.