Per quanto riguarda il primo problema, ti suggerisco di utilizzare
required evitando JS.
Se proprio vuoi farlo con jquery, ho fatto una prova in questo modo:
Codice HTML:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title> test required </title>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$( document ).ready(function() {
$("#nome").change(function() {
if ($(this).val() == "")
$(this).css("border", "1px solid red");
else
$(this).css("border", "1px solid black");
});
});
</script>
</head>
<body>
<form>
<input type="text" name="nome" id="nome">
</form>
</body>
</html>
(fonte js)
Per il secondo problema dell'innerHTML, nella console ricevi qualche errore? Puoi linkare la pagina che da problemi?
Ciao!