Есть несколько проблем, во-первых, цвет ошибки отображается как окружение элемента input. Поэтому вам нужно использовать div ошибки, чтобы содержать элемент input, или просто изменить цвет контейнера для элемента формы. Я голосую за изменение цвета контейнера.
Во-вторых, вы хотите, чтобы div.error отображался слева и справа ( при условии, что вы просто меняете цвет контейнера для элемента формы ), поэтому просто добавьте:
div.error {
clear: both;
}
Это предполагает, конечно, что по какой-то причине вы плавали влево. В любом случае посмотрите простой пример того, как один способ выложить это
http://jsbin.com/amaxa