TypeError no detectado: no se pueden leer las propiedades de nulo al llamar a la función js test(). ¿Qué está mal con este código de ejemplo? ¿Hay una mejor manera de llamar a una función js desde php para la manipulación de DOM?
html
<form method="post" action="#"> <input type="text" id="inp">Test</input> <button type="submit" id="submit" name="submit" value="submit"></button> </form>php
if(isset($_POST['submit')] { $wrongInput= some code... if ($wrongInput) { echo "<script src=main.js></script>"; echo "<script type=text/javascript>test();</script>" } }js
function test() { document.querySelector("#submit").style.background = "red"; }No está claro dónde se repite eso en la página ... Pero seguro, el DOM debe cargarse para que querySelector encuentre el elemento. Entonces, el uso del evento DOMContentLoaded es la forma de asegurarse, sin tener en cuenta dónde está el eco. ;)
if(isset($_POST['submit')] { $wrongInput= //some code... if ($wrongInput) { echo "<script src='main.js'></script>"; echo "<script>document.addEventListener('DOMContentLoaded', test);</script>"; } }