#jquery #ajax #twitter-bootstrap #laravel
#jquery #ajax #twitter-bootstrap #laravel
Вопрос:
Я пытаюсь получить данные с помощью вызова .ajax и добавить HTML-код ответа в модальное тело начальной загрузки. Но я продолжал получать эту ошибку:
jquery-3.1.0.min.js: 2 Неперехваченная ошибка: синтаксическая ошибка, нераспознанное выражение: http://localhost/menu/create
На самом деле я получаю нужные данные в ответ, но из-за этой ошибки данные не могут отображаться в модальном окне.
Вот мой код. Когда я нажимаю на ссылку, вызов ajax возвращает html-форму и вставляет ее в модальное тело. Затем отображается модальное окно.
<a href="{{route('menu.create')}}" class="btn btn-default pull-right show-new-menu-item-modal" data-toggle="modal">New Menu Item</a>
$('body').on('click', '.show-new-menu-item-modal', function(event) {
event.preventDefault();
$.ajax({
url: $(this).attr('href'),
dataType: 'html',
success: function(response) {
$("#new-menu-item-body").html(response);
}
});
$('#new-menu-item-modal').modal('show');
});
Я искал и менял код в течение нескольких часов, но все еще безуспешно. Я был бы очень признателен, если кто-нибудь может дать мне какую-то идею. Заранее спасибо!
Комментарии:
1. попробуйте добавить return false в конце вашего ajax-вызова
Ответ №1:
Я подозреваю, что это связано с начальной загрузкой и тем фактом, который вы установили data-toggle="modal"
для элемента.
Попробуйте удалить это. Вы сами инициализируете модальное как есть.
Я думаю, что происходит потому, что вы не использовали data-target
то, что требуется в связи с data-toggle
этим, пытается использовать в href
качестве селектора jQuery для модального идентификатора, и это выдаст ошибку, которую вы видите, если вы это сделали
Ответ №2:
@charlietfl прав, вы не можете запретить действие по умолчанию для модального, если вы это сделаете, оно вообще не откроется, проверьте способ javascript вызова модального в документации Bootstrap, в нем есть исправление, которое вы можете использовать, чтобы сделать то, что вы хотите, проверьте этот URL: http://getbootstrap.com/javascript /.
Надеюсь, вы решите
Превосходно!
Ответ №3:
Если у вас нет модели начальной загрузки и вы получаете синтаксическую ошибку, убедитесь, что возвращаемый HTML-код не содержит пробелов перед первым узлом DOM.