Jakoś się pewnie da, ale powinno się mieszać tego. Lepiej jest w php zwrócić errory.
<?php
$username = $_POST['username'];
$errors = array();
if(empty($username)){
$errors['usernameErrMsg'] = "Your username sucks!";
}
if(!empty($errors)) {
$errorsUrl = serialize($errors);
header("Location: index.php?errors=$errorsUrl");
}
<?php
if(!empty($_GET['errors']))
$errors = unserialize($_GET['errors']);
?>
<div class="content">
<form action="submit.php" method="POST">
<?php if(!empty($errors['usernameErrMsg'])): ?>
<span class="error"><?php echo $errors['usernameErrMsg'];?></span>
<?php endif;?>
<label for="username">Username<input type="text" name="username"></label>
</form>
</div>
Ten kod pozostawia wiele do życzenia, ale mozesz cos w ten sposob pokombinowac. Mozesz sprobowac tez submit ajaxem i tak jak napisał mój przedmówca dodawać odpowiednie klasy w zależności od tego co Ci zwróci twój skrypt php. Moim zdaniem lepsza opcja.