Csákó!
Írok egy cck komponenst, ami egy term-et választ ki autocomplete segítségével egy adott szótárból. Valamiért viszont hiába állítom be a validációba a form hibát, csak a hibaüzenet jelenik meg, az input mező nem lesz piros (nem kapja meg az error osztályt)
Van valakinek ötlete?
kis segítség:
<?php case 'validate': $term = taxonomy_get_term_by_name($items['tid']['value']); if (sizeof($term) == 0) { form_set_error($field->field_name."[tid][value]", t("Sorry, the entered word is not in our database. We only accept terms that are presented in our database")); } break; ?> <input id="edit-field-kategria-tid-value" class="form-text form-autocomplete" type="text" value="Basszusgitár" size="60" name="field_kategria[tid][value]" maxlength="" autocomplete="OFF"/>
Fórum:
Lehet hogy hülyeséget írok,
Lehet hogy hülyeséget írok, de nem az ID-t kéne megadnod?
Lippai Ádám
young element
Drupal api szerint
Drupal api szerint nem.
Definition
form_set_error($name = NULL, $message = '')
includes/form.inc, line 591
Description
File an error against a form element. If the name of the element is edit[foo][bar] then you may pass either foo or foo][bar as $name foo will set an error for all its children.
Ha a title mező name -ét adom
Ha a title mező name -ét adom meg, az bepirosodik.
Megoldás
A dolog több sebből vérzett:
1. a $field tömb és nem objektum, azaz helyese: $field['field_name']
2. az input mező form elemében a #parent[0] -ben field_kategria volt (nem volt mögötte a [tid][value], azok a #parent[1] #parent[2]) és ezért az összehasonlításnál nem találta
tehát helyesen: