Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7098137
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T11:01:04+00:00 2026-05-28T11:01:04+00:00

In my current application, I would like to color the select options red when

  • 0

In my current application, I would like to color the select options red when they contain faulty information (aka not validated). When a form element contains one or more errors, it should have an error class (so I can style accordingly). I tried looping through the elements, and seeing if they validated, but this gets very ugly very quickly.

How would I get this done in a better way?

Thanks

Edit: This is my current workaround (and gets the job done, but dirtily)

$post = $request->getPost();
foreach ($contactForm->getElements() as $element) {
    if (!$element->isValid($post[$element->getName()])) {
        $element->setAttrib('class', 'error');
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T11:01:05+00:00Added an answer on May 28, 2026 at 11:01 am

    Here are a couple of thoughts…

    1. Instead of calling isValid on every form element, you can validate your whole form with isValid, and then loop over your elements as you are in your question, but instead use if ($element->hasErrors()) to determine if you need to add the error class to the element.

    2. You may want to extend from Zend_Form and add a helper method to your new Form class that does this for you. For example, add a method called highlightErrorElements() or something like that and if you have an unsuccessful call to $form->isValid(), you can then simply call $form->highlightErrorElements() which will loop over each form element and see if it has errors and apply the style if necessary.

    Example:

    <?php
    
    class Application_Form_Base extends Zend_Form
    {
        public function __construct()
        {
            // this is where i normally set up my decorators for the form and elements
            // additionally you can register prefix paths for custom validators, decorators, and elements
    
            parent::__construct();
            // parent::__construct must be called last because it calls $form->init()
            // and anything after it is not executed
        }
    
        public function highlightErrorElements()
        {
            foreach($this->getElements() as $element) {
                if($element->hasErrors()) {
                    $element->setAttrib('class', 'error');
                }
            }
        }
    }
    

    Somewhere, in a controller…

    $form = new Application_Form_Register(); // this extends Application_Form_Base
    if ($form->isValid($this->getRequest()->getPost())) {
        // add user etc
    } else {
        $form->highlightErrorElements();
        // other error logic
    }
    
    $this->view->form = $form;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to send an email from an application that contains the current
I'm developing a web application and would like to display user's current date basing
I would like to determine, from a .NET application, whether the current user (from
I want to set new color to Application.Current.Resources[MainColor]. I can do it like this:
I would like to improve security on a current application regarding session management and
i have a WPF application that i would like to become the current focused
I would like to have my current application close and restart. I have seen
I am creating a C++ application the uses a MySQL database. I would like
I have a web application where I would like to add or edit Enterprise
I have written an SWT Java application and would like to configure it to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.