atocomplete textfield hiba jelzés

pentike képe

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"/>
alippai képe

Lehet hogy hülyeséget írok, de nem az ID-t kéne megadnod?

0
0

Lippai Ádám
young element

pentike képe

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.

0
0
pentike képe

Ha a title mező name -ét adom meg, az bepirosodik.

0
0
pentike képe

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:

<?php
          form_set_error($field['field_name'], t("Sorry, the entered word is not in our database. We only accept terms that are presented in our database"));
?>
0
0