Javascript代码不执行?

Javascript代码不执行?,javascript,html,Javascript,Html,我在做一个项目。我试图使我的代码,以便当用户提交一个选项从下拉菜单,如果用户选择并提交默认的选择一个流派,表单不会提交,页面不会刷新。以下是我的Javascript代码: <script> var menu = document.getElementById("submit"); menu.addEventListener("click", function() { if (document.getElementById("dropd

我在做一个项目。我试图使我的代码,以便当用户提交一个选项从下拉菜单,如果用户选择并提交默认的选择一个流派,表单不会提交,页面不会刷新。以下是我的Javascript代码:

<script>

    var menu = document.getElementById("submit");
        menu.addEventListener("click", function() {
            if (document.getElementById("dropdown").value == 'nothing')
            {
                return false;
            }
        });

</script
请尝试event.preventDefault:

var menu=document.getElementByIdsubmit; menu.AddEventListener单击,functionevent{ 如果document.getElementByIddropdown.value=='无' { 违约事件; } }; 选择一种类型 岩石
如果不绑定到$document.ready或将其作为自调用函数,则它只是一个代码声明

第一个解决方案:

另一个解决方案:


这是嵌套在标记中的。哪里有控制台错误吗?脚本标记在div上面吗?@CertainPerformance,忘了提到它嵌套在head标记中。即使在else语句中写入console.log,也不会出现控制台错误。这应该会导致错误,因为执行脚本时不存在submit。将JS放在一个单独的文件中,给脚本标记defer属性,也许?可能是重复的:@RaffayAtiq,我不知道这在哪里不起作用……代码片段显示它起作用……这很奇怪,代码片段对我不起作用。不支持我的浏览器吗?我使用的是最新的谷歌Chrome浏览器。@RaffayAtiq,这里的浏览器应该没问题。您是否尝试调试代码?我不知道如何正确调试,但我正在使用CS50的调试器,它告诉我值“nothing”正在传递到我的Flask路由,因此脚本根本没有执行,或者if语句的计算结果为false。
<div>
    <form method="POST">
        <select id="dropdown" name="genre">
            <option value="nothing">Select a genre</option>
            <option value="rock">Rock</option>
        </select>
        <br/>
        <br/>
        <input id="submit" type="submit"/>
     </form>
</div>
Uncaught TypeError: $(...).addEventListener is not a function
    at (index):18


    $( document ).ready(functino(){
        var menu = document.getElementById("submit");
            menu.addEventListener("click", function() {
                if (document.getElementById("dropdown").value == 'nothing')
                {
                    return false;
                }
            });
    });

(function(){
var menu = document.getElementById("submit");
        menu.addEventListener("click", function() {
            if (document.getElementById("dropdown").value == 'nothing')
            {
                return false;
            }
        });
}());