The place to implement logic based form_set_error should be in the validate function and not template.php .. I would recommend you use hook_form_alter<http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_form_alter/7>-> $form_id will indicate the form you wish to alter, and there you can add a custom validate function in $form['#validate'] -- the custom function should then take care of form_set_error
http://api.drupal.org/api/drupal/includes%21form.inc/function/form_set_error/7-- you need to set the element name as first parameter to make sure that the particular field is highlighted. On Mon, Feb 20, 2012 at 1:51 PM, Athanasios Velios <[email protected]>wrote: > Hello, > > I am trying to alter a form (uc_cart_view_form) with various input fields > (Qty for products). In template.php I am adding some extra logic which > applies across a selection of these fields. Once the logic is checked I > need to display an error message. I am using form_set_error to show the > message. The problem is that the user then updates the input values and > updates the form, but the new figures are not taken into account. They are > shown in the form, but not used in my template.php extra logic. > > drupal_set_message allows the new values to work but the message appears > twice and it does not, obviously, link to specific fields in the form which > are problematic. > > Setting form_state rebuild to true before form_set_error does not have an > effect. > > Any ideas of what needs to be done for these values to be taken into > account with form_set_error? > > Thanks > > Thanasis > -- Cheers, Mukesh Agarwal ________________________________ Innoraft Solutions <http://www.innoraft.com> || +91 8017220799
