如何在 ASP.NET Core MVC razor 视图中使用脚本标签

How to use script tag in an ASP.NET Core MVC razor view

我想在 MVC 项目的 razor 视图中使用 javascript。我想通过单击 post 按钮向用户显示一条消息。我将脚本标记放在页面下方的 Section 中,但在按 F12 时它显示 'btn' is null。我正在 Firefox

的 IISExpress 上测试我的项目
<form method="post">
--------a few input fields in a form-------
 <button id="button" type="submit" class="btn btn-lg btn-success">send</button>
</form>
<div class="submit-progress d-none">
    <label>be patient please...</label>
</div>
@section scripts{
    <partial name="_ValidationScriptsPartial" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.2.7/js/fileinput.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            const btn = document.getElementById("#button");
            btn.addEventListener("click", function () {
                $(btn).prop("disabled", true);
                $(".submit-progress").removeClass("d-none");
            })
        });
    </script>
}

使用 getElementById 时,您只需传递名称而不是选择器 #

const btn = document.getElementById("button");

您正确使用了脚本部分。

您的代码存在多个问题,主要是由于混合了 jQuery 和本机 JavaScript 方法。您可以通过修复显示的 3 行以使用 jQuery 来使其工作。请注意,“this”指的是事件处理程序附加到的元素,在本例中是按钮。

$(document).ready(function() {
  // const btn = document.getElementById("#button"); <-- REMOVE
  $("#button").click(function() { // <-- CHANGE
    $(this).prop("disabled", true); // <-- CHANGE
    $(".submit-progress").removeClass("d-none");
  })
});