Der Validator hat grundsätzlich Probleme mit JS/bemängelt JS.
Das liegt schlichtweg daran, das der Validator den Code so sieht wie er ist (ist halt nur ein HTML Validator und HTML steht im Quelltext "finalisiert" drinne, während dein JS ja erst noch HTML Code erzeugt), nicht das, was der JS Code ausgibt (hier muss man halt schaun, dass das ausgegebene valid ist).
Du könntest höchstens einmal versuchen den JS Code "auszukommentieren" (die Variante für ältere Browser).