2015-11-11 3 views
0

Я запускаю модальную кнопку с помощью кнопки data attributes. Кнопка находится в строке на datatable. Модаль используется для обновления объекта в базе данных. Вот код, который открывает модальный:Кнопка «Модальная открытая кнопка загрузки» требует двух щелчков, чтобы открыть после закрытия

<button 
    data-toggle="modal" 
    data-target="#updateInstitutionModal" 
    data-id="' + data.id + '" 
    data-name="' + data.name + '" 
    data-requires_id="' + data.requires_id + '" 
    class="btn btn-xs btn-primary bootstrap-modal-form-open" 
> 
    <i class="glyphicon glyphicon-edit"></i> Edit 
</button> 

Я использую это https://github.com/JesseLeite/Laravel-Bootstrap-Modal-Form расширение для обработки формы в модальном, который имеет дело с запросом AJAX на мой бэкэнд, который является PHP/Laravel. Я изменил его немного, чтобы сделать следующий раз формы представила без ошибок, возвращаемых:

function reload() { 
    // remove the modal 
    $('#updateInstitutionModal').hide(); 
    $('body').removeClass('modal-open'); 
    $('.modal-backdrop').remove(); 
    // refresh my datatable 
    $('#institutions-table').DataTable().ajax.reload(); 
    return true; 
} 

Первоначально он просто сделал следующее: location.reload(); тогда я звоню мой собственный метод перезагрузки.

Проблема в том, что если я нажму кнопку обновления и сделаю обновление, все будет нормально работать, но если я немедленно нажму кнопку, чтобы обновить x или другую кнопку обновления в любой другой строке, модальность не появится. После повторного нажатия кнопки снова появится модальный. Любые идеи о том, что я делаю неправильно здесь?

ответ

1

Заменено:

function reload() { 
    // remove the modal 
    $('#updateInstitutionModal').hide(); 
    $('body').removeClass('modal-open'); 
    $('.modal-backdrop').remove(); 

    // ... 
} 

с:

function reload() { 
    // toggle the modal 
    $('#updateInstitutionModal').modal('toggle'); 

    // ... 
} 

И теперь он работает. Я должен был бы переключать вместо этого. Так что кнопка все еще читала ее как открытую, я верю, поэтому ей потребовалось два клика. Задача решена!

Смежные вопросы