javascript 部分视图jQuery脚本在ASP.NETCore中不起作用

brvekthn  于 2023-05-21  发布在  Java
关注(0)|答案(2)|浏览(194)

这是一个“局部”的观点:

@model SetIsApprovedModel

    <form id="frmApprove" data-ajax="true" data-ajax-method="post" data-ajax-url="@(Url.Action("SetApprove", "AccountAdmin"))"
          data-ajax-success="onsuccess" data-ajax-mode="replace" data-ajax-update="#approvePartial" data-ajax-loading="#loadingApprove"
          data-ajax-failure="failed">
        <input type="hidden" asp-for="@Model.UserName" />
        <div class="row px-3 mb-1">
            <div class="col-md-5 text-md-end fw-bold">Approved: </div>
            <div class="col-md-7 text-md-start" id="IsApprovedDiv">
                <input id="chkApprove" type="checkbox" asp-for="@Model.IsApproved" />
            </div>
            <input type="submit" value="Submit" />
        </div>
    </form>

    <script>
        $(document).ready(function () {
            $(document).on('change', "input[type='checkbox']", function (e) {
                /* $("#chkApprove").on('change', function (evt) { */
                $('#frmApprove').trigger('submit');
            });
        });
    </script>

脚本不起作用。我该如何纠正它?注意:如果我点击提交按钮,它的作品,但我希望这个形式是张贴在响应一个改变事件从复选框。

nszi6y05

nszi6y051#

您需要将处理程序附加到复选框,您似乎已经尝试过了。你也可以使用jQuery submit方法。

$("#chkApprove").on('change', function (evt) {
  $('#frmApprove').submit();
});
s8vozzvw

s8vozzvw2#

我担心在局部视图中编写的脚本在局部视图在主视图中呈现后将无法工作,因为它是一个.cshtml文件。因此,我有一个测试,它将脚本移动到@section Scripts{}包围的主视图中,您可以看到我的测试结果。

或者也可以在部分视图中包含jQuery库。例如,如果您有一个默认的ASP.NETCore项目,则可以在脚本之前编写<script src="~/lib/jquery/dist/jquery.min.js"></script>

相关问题