Модал начальной загрузки не работает с моим кодом ajax - PullRequest
0 голосов
/ 13 апреля 2019

Я создал частичное представление с именем ModalReq, которое необходимо заполнить данными из базы данных.

Контроллер и представление работают правильно.

Но при нажатии на элемент скласс '.car-box', сначала ничего не происходит, после второго нажатия появляется правильно заполненный модал, но он не хочет закрываться, как заставить модал работать правильно?

Код Ajax на главном экране:

<script>
    function ajaxReq(url,type,selector) {
    $.ajax({
        url: url,
        type: type,
        contentType: 'application/json',

        success: function (data) {
            $(selector).html(data);
        }
    });
    }
</script>

<script>
$(document).on('click', '.car-box', function () {
    var objText = $(this).children('.box-his').children("span").text();
    var objId = objText.substring(1, objText.length);

    ajaxReq("@Url.Action("ModalReq")" + "?productId=" + objId, "POST", '#result');
    $('#myModal').modal('show')
});
</script>

И я создаю div с ним в самом низу этого представления (но все еще над кодом Ajax)

<div id="result"></div>

Когда вы нажимаетедля элемента с классом .car-box код Ajax создает объект, который получает свой номер со строковым типом внутри карты.Затем он оставляет только число с одинаковым типом строки.Затем я вызываю ajaxReq, в котором я передаю свое частичное представление, которое принимает указанный нами идентификатор.Затем включает созданный модал ...

Я никогда раньше не использовал ajax, поэтому мне нужна ваша помощь =)

1 Ответ

1 голос
/ 13 апреля 2019

В текущей итерации $('#myModal').modal('show') не ожидает ответа Ajax.

Как насчет перемещения его в функцию успеха?

success: function (data) {
        $(selector).html(data);
        $('#myModal').modal('show')
    }

Тогда модал получит данные после одного нажатия.

Или: этот ответ jQuery ajax с обещаниями ES6 должен помочь вам настроить его в качестве обещания.

...