从 php 调用 js 函数但未找到 属性

call js function from php but property not found

未捕获类型错误:调用 js 函数 test() 时无法读取 null 的属性。 这个示例代码有什么问题? 有没有更好的方法从 php 调用 js 函数进行 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";
}

不清楚页面中回显的位置...但是可以肯定的是,DOM 需要加载 querySelector 才能找到元素。所以使用 DOMContentLoaded 事件是确定的方式,不管回声在哪里。 ;)

if(isset($_POST['submit')]
{
    $wrongInput= //some code...

    if ($wrongInput)
    {
        echo "<script src='main.js'></script>";
        echo "<script>document.addEventListener('DOMContentLoaded', test);</script>";
    }
}