function clientside_validation_regular in Clientside Validation 6
Same name and namespace in other branches
- 7 clientside_validation_form/clientside_validation_form.module \clientside_validation_regular()
1 call to clientside_validation_regular()
- clientside_validation_form_after_build_recurse in clientside_validation_form/
clientside_validation_form.module
File
- clientside_validation_form/
clientside_validation_form.module, line 32 - Add clientside validation to regular forms
Code
function clientside_validation_regular($form_id, $element, &$js_rules) {
static $multiples = array();
if (isset($element['#name'])) {
$el_name = $element['#name'];
$el_title = $el_name;
if (isset($element['#title'])) {
$el_title = $element['#title'];
}
$is_multiple = FALSE;
if (isset($element['#multiple'])) {
$is_multiple = $element['#multiple'];
}
switch ($element['#type']) {
case 'textfield':
case 'password':
case 'textarea':
case 'file':
if ($is_multiple) {
// Only first field is required
if (!isset($multiples[$form_id][$el_name])) {
_clientside_validation_set_required($el_name, $el_title, $element['#required'], $js_rules);
$multiples[$form_id][$el_name] = 1;
}
}
else {
_clientside_validation_set_required($el_name, $el_title, $element['#required'], $js_rules);
}
if (isset($element['#maxlength']) && $element['#maxlength'] > 0) {
_clientside_validation_set_minmaxlength($el_name, $el_title, '', $element['#maxlength'], $js_rules);
}
break;
case 'select':
if ($is_multiple) {
$el_name .= '[]';
if (!isset($element['#minlength'])) {
$element['#minlength'] = 0;
}
$max = $is_multiple === TRUE || $is_multiple == 1 ? '' : $is_multiple;
_clientside_validation_set_minmaxlength($el_name, $el_title, $element['#minlength'], $max, $js_rules);
}
_clientside_validation_set_required($el_name, $el_title, $element['#required'], $js_rules);
break;
case 'radio':
case 'radios':
_clientside_validation_set_required($el_name, $el_title, $element['#required'], $js_rules);
break;
case 'checkbox':
case 'checkboxes':
$is_multiple = isset($element['#options']) && count($element['#options'] > 1);
if ($is_multiple) {
$id = '#' . $element['#id'] . '-wrapper';
_clientside_validation_set_checkboxgroup_minmax($el_name, $el_title, $id, $js_rules, intval($element['#required']));
}
elseif ($element['#required']) {
_clientside_validation_set_required($el_name, $el_title, $element['#required'], $js_rules);
}
break;
case 'captcha':
$title = variable_get('clientside_validation_prefix', '') . $element['captcha_widgets']['captcha_response']['#title'] . variable_get('clientside_validation_suffix', '');
$message = t('Wrong answer for !title', array(
'!title' => $title,
));
$case_sensitive = strpos($element['#captcha_validate'], 'insensitive') === FALSE;
_clientside_validation_set_specific_value($element['captcha_widgets']['captcha_response']['#name'], $title, $element['#captcha_info']['solution'], $js_rules, $message, $case_sensitive);
break;
}
}
}