首页 > 解决方案 > asp.net javascript mvc - 如何从内页获取 javascript 以从外页清除元素?

问题描述

我想要从“内部”mvc 表单调用的 javascript 单击事件来清除“外部”/“父”表单的元素,但单击清除不会产生任何结果(参见线框)。Javascript 适用于外部形式,但在内部形式的脚本文件引用中调用时不起作用,尽管我知道脚本已正确连接 b/c 脚本的其他行为正在发生。:

$("#clearField").on('click', function ()
{
    document.getElementById("playerCardNumber").value = "";
});

环境:asp.net mvc 在此处输入图像描述

外部/父 cshtml 页面的代码:

@model adminLte.Models.playerCardData

<section class="content">

            <div class="inputPlayerInfo">
                @using (Ajax.BeginForm("WriteToGroup", "IT", new AjaxOptions  //action, view
                {
                    HttpMethod = "GET",
                    InsertionMode = InsertionMode.Replace,
                    UpdateTargetId = "innerPlayerInfoForm", //css tag (see below)
                    OnComplete = "ReturnData",
                    OnBegin = "ClearResults",
                    LoadingElementId = "divloading"
                }))
                {
                        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                        <div class="divTable playerGroupTbl">
                            <div class="divTableBody">
                                <div class="divTableRow">
                                    @Html.LabelFor(model => model.playerCardNumber , htmlAttributes: new { @class = "divTableCell" })
                                    <div class="divTableCell">
                                        @Html.EditorFor(model => model.playerCardNumber, new { htmlAttributes = new { @id= "playerCardNumber", @type ="password", @class = "form-control" } })
                                        @Html.ValidationMessageFor(model => model.playerCardNumber , "", new { @class = "text-danger" })
                                    </div>
                                </div>
                            </div>
                        </div>
                        <br />
                        <input type="submit" name="Command" value="Lookup Player" class="btn btn-default btn-lg" />
                        <button type="button" class="btn btn-default btn-lg" id="clearField" >Clear Previous Swipe</button>
                }
           </div>
           <br />

            @*form is inserted here*@
            <div id="divloading" style="display:none">
                <img src="~/images/giphy.gif" /> </div>
            <div id="innerPlayerInfoForm"></div>

</section>

@section scripts{
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
        <script>
            function ReturnData()
        {
                $('#innerPlayerInfoForm').show();
            }
            function ClearResults()
            {
                $('#innerPlayerInfoForm').empty();
            }
            $('#playerEvent').selectpicker({
                size: 4
            });
            $("#clearField").on('click', function () {
                document.getElementById("playerCardNumber").value = "";
            });
        </script>
}

部分视图的代码:

@model adminLte.Models.eventModelParent

<div class="inputPlayerInfo">
    @using (Ajax.BeginForm("sproc_PlayerGroupInsert", "IT", new AjaxOptions  //action, view
    {
        HttpMethod = "GET",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "innerPlayerInfoForm", //css tag (see below)
        OnComplete = "ReturnData",
        OnBegin = "ClearResults"
    }))
    {
        @Html.AntiForgeryToken()
        HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

        <div class="divTable playerGroupTbl">
            <div class="divTableBody">
                <div class="divTableRow">
                    @Html.ValidationSummary(true, "", new { @class = "text-danger" })

                    <div class="divTableCell">
                        Event:
                    </div>
                        <div class="divTableCell">

                            @foreach (var _event in Model.vips)
                            {

                                @Html.RadioButtonFor(m => m.events.SelectedEvent, _event.eventId,
                                                        _event.eventchecked == 1 ? new { @checked = "checked" } : null
                               )  @:&nbsp  @_event.eventName
                                <br />
                            }

                            @Html.ValidationMessageFor(model => model.events.SelectedEvent , "", new { @class = "text-danger" })
                        </div>
                    </div>
                <div class="divTableRow" >
                    <div class="divTableCell"> Player ID: </div>
                    @foreach (var item in Model.playerData)
                    {
                        <div class="divTableCell">
                        <input style="border:none;background:transparent;"  id="PlayerID" name="PlayerID" value=@item.PlayerID readonly>
                         </div>
                    }
                </div>
                <div class="divTableRow someDivXYZ">
                    <div class="divTableCell"> Player First Name: </div>
                    @foreach (var item in Model.playerData)
                        {
                            <div class="divTableCell">
                            <input style="border:none;background:transparent;"  id="playerFirstName" name="playerFirstName" value=@item.playerFirstName readonly>
                            </div>
                    }
                </div>
                <div class="divTableRow someDivXYZ">
                    <div class="divTableCell"> Player Last Name: </div>
                    @foreach (var item in Model.playerData)
                    {
                        <div class="divTableCell">
                            <input style="border:none;background:transparent;"  id="playerLastName" name="playerLastName" value=@item.playerLastName readonly>
                        </div>
                    }
                </div>
                </div>
                </div>
                <br />
                        <input type="submit" id="updatePlayerGroup" value="Write This Player to Group" class="btn btn-default btn-lg" />
                        <button onclick="ClearResults()" class="btn btn-default btn-lg" id="clearField">Clear Selected Data</button>
                }
            </div>

            <div id="PlayerGroupInsertStatus"></div>
            @Scripts.Render("~/scripts/renderJS.js")

外部js文件:

$('#playerEvent').selectpicker({
    size: 4
});


$('#formEvent_playerEvent').selectpicker({
    size: 4
});

function ReturnData() {
    $('#PlayerGroupInsertStatus').show();
}

function beforeSend() {

    var PlayerID = document.getElementById("PlayerID").value;

}

$("#clearField").on('click', function ()
{
    document.getElementById("playerCardNumber") = "";
});

非常感谢任何帮助 - 在此先感谢!

标签: javascriptasp.net-mvc

解决方案


推荐阅读