bootbox.confirm доза не отображать сообщение и страница потерпела крах - PullRequest
0 голосов
/ 21 сентября 2018

Я новичок в начальной загрузке. Я пытаюсь показать сообщение о подтверждении с форматом загрузочной коробки после нажатия на кнопку Удалить btn. Я знаю, что bootbox.confirm нужна функция обратного вызова, поэтому я использую результат и проверил, истинно ли оно, затем покажу его.ожидайте увидеть это: Вы уверены, что хотите удалить этого клиента?но после нажатия кнопки происходит, и браузер просто зависает, и я должен обновить его снова.это весь мой код:

<h2>Customers</h2>
@Html.ActionLink("ADD New Customer", "CreatNewCustomer", "Customer", new { @class = "form-control" })
@if (!Model.Any())
{
    <p> there is no customer</p>

}
else
{ 
    <table id="Customers" class="table table-bordered table-hover">
        <thead>
            <tr>

                <th>Customers</th>

                <th>Discount Rate</th>
                <th>Delete </th>
            </tr>
        </thead>

        <tbody>
            @foreach (var Customer in Model)
        {

            <tr>
                @*<td>@Customer.Name</td>*@
                <td>@Html.ActionLink(Customer.Name.ToString(),"Edit","Customer",new {id=Customer.CustomerID },null)</td>
                <td>@Customer.MembershipType.MembershipName</td>
                <td>
                    <button data-customer-id="@Customer.CustomerID" class="btn-link js-delete"> Delete</button>
                </td>

            </tr>




        }
    </tbody>
</table>
}
@section scripts

    {
<script>
    $(document).ready(function () {

        $("#Customers .js-delete").on("click", function () {
            bootbox.confirm("Are you sure to delete this customer?", function (result) {
                if (result) {
                    var butten = $(this)
                    $.ajax({
                        url: "/api/customer/" + butten.attr("data-customer-id"),
                        method: "Delete",
                        success: function () {
                            console.log("success"),
                                butten.parents("tr").remove();

                        }


                    })
                }
            })


    })
    })
</script>
    }

Основная часть здесь:

 <script>
        $(document).ready(function () {

            $("#Customers .js-delete").on("click", function () {
var butten = $(this);
                bootbox.confirm("Are you sure to delete this customer?", function (result) {
                    if (result) {

                        $.ajax({
                            url: "/api/customer/" + butten.attr("data-customer-id"),
                            method: "Delete",
                            success: function () {
                                console.log("success"),
                                    butten.parents("tr").remove();

                            }


                        })
                    }
                })


        })
        })
    </script>

Я не могу понять, что с этим не так.Когда я использую bootbox.confirm, мой код не работает, но когда я использую, подтверждаю только так:

<script>
        $(document).ready(function () {

            $("#Customers .js-delete").on("click", function () {
var butten = $(this);
                confirm("Are you sure to delete this customer?", function (result) {
                    if (result) {

                        $.ajax({
                            url: "/api/customer/" + butten.attr("data-customer-id"),
                            method: "Delete",
                            success: function () {
                                console.log("success"),
                                    butten.parents("tr").remove();

                            }


                        })
                    }
                })
    })

        })
    </script>

мой код работает.Я установил загрузочную версию 4.3.0 и установил в моей конфигурации пакета вот так:

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/bootbox.js",
                      "~/Scripts/respond.js"));

И я пользуюсь против 2017 г. Надеюсь, кто-нибудь мне поможет.

1 Ответ

0 голосов
/ 22 сентября 2018

Если вы пытаетесь получить ссылку на кнопку, которая вызвала событие нажатия, вы (все еще) выбираете неправильный элемент, выполняя это:

$(document).ready(function () {
    var butten = $(this);

Где у вас есть эта строка в вашемпоследнее редактирование, вы выбираете документ.Что вам нужно, это:

$("#Customers .js-delete").on("click", function () {

    // THIS is where you select the button...
    var butten = $(this);

    // ... the rest of your code
}

Если вы боретесь с этим, я предлагаю потратить некоторое время на учебный центр jQuery: https://learn.jquery.com/

...