2014-10-27 6 views
0

Я работаю на функцию, которая работает следующим образом:страница загрузки затем запустить bootbox

  1. Нажмите ссылку
  2. После загрузки страницы, основанные на ссылке щелкнул будет отображаться конкретный модальное окно
  3. Продолжить с модальным
  4. Конец функций

Моя проблема я бегу в том, что либо модальный не будет загружаться, или он будет загружаться, но затем с потерять сразу после загрузки страницы. Вот функция, я работаю с

$(function(){ 
    $('#new-po').click(function(){ 
     window.location.href= $(this).attr('href'); 
     bootbox.dialog({ 
      title: "Create New Purchase Order", 
      message: '<div class="row">'+ 
      '<div class="col-md-12">'+ 
      '<form action="" method="post" id="create-po-form">'+ 
      '<div class="form-group">'+ 
      '<div class="col-md-12">'+ 
      '<div class="form-group row">'+ 
      '<div class="col-md-6">'+ 
      '<label>Invoice Number</label>'+ 
      '<input type="text" class="form-control" id="inv_num"/>'+ 
      '</div>'+ 
      '<div class="col-md-6">'+ 
      '<label>Vendor</label>'+ 
      '<input type="text" class="form-control" id="vendor"/>'+ 
      '</div>'+ 
      '</div>'+ 
      '</div>'+ 
      '<div class="col-md-12">'+ 
      '<div class="form-group row">'+ 
      '<div class="col-md-6">'+ 
      '<label>Invoice Number</label>'+ 
      '<input type="text" class="form-control" id="total"/>'+ 
      '</div>'+ 
      '<div class="col-md-6">'+ 
      '<label>Vendor</label>'+ 
      '<select class="form-control" id="status">'+ 
      '<option value="" selected> -Status-</option>'+ 
      '<option value="Open">Open</option>'+ 
      '<option value="Closed">Closed</option>'+ 
      '<option value="Void">Void</option>'+ 
      '</select>'+ 
      '</div>'+ 
      '</div>'+ 
      '</div>'+ 
      '</div>'+ 
      '</form>'+ 
      '</div>'+ 
      '</div>', 
      buttons:{ 
       success:{ 
        label: "Create PO", 
        className: 'btn-success', 
        callback:function(){ 


        } 
       } 
      }, 
      onEscape: function(){ 

      } 
     }); 
    }); 
}); 

Он использует расширение bootbox, и до сих пор я не файлик никакого конфликта с ним, поэтому я буду продолжать использовать его, пока не указано иное. Я пробовал использовать $(document).ready(), $(window).load(), $(function(){} и еще несколько вещей и ничего не сработало. Мысли?

Также для ссылок моя страница структура на каждой странице выглядит следующим образом:

<!-- The header contains the html starting tags and the head section --> 
<? include "/inc/header/overall_header.php"; ?> 
    <!-- html content here --> 
<!-- The footer contains the scripts for the pages and the html ending tag --> 
<? include "/inc/header/overall_header.php"; ?> 
+0

Вы должны переместить 'window.location.href = $ (this) .attr ('href');' это для обработчика успеха диалога –

+0

святое дерьмо, если я покончил с этой функцией, я собираюсь сам –

+0

OK cool Я добавил его в качестве ответа –

ответ

0

Вы должны переместить window.location.href= $(this).attr('href'); это обработчик успеха диалогового

+0

попробовал это. Он появляется до того, как окно загружается, а затем закрывается немедленно. Это почти как если бы обратный вызов успеха был запущен по умолчанию –

+0

Я думаю, что обработчик успеха должен быть таким, как в этом примере «Пользовательский диалог» http://bootboxjs.com/examples.html. Он нуждается в другом обратном вызове –

+0

Я думал об этом, но я думаю, что нет –

0

Когда страница обновляется Javascript останавливается и загружается новый скрипт.

Необходимо активировать код загрузочного бокса на новой странице при его загрузке.

Например:

Page # 1:

$(function(){ 
    $('#new-po').click(function(){ 
     window.location.href= $(this).attr('href'); // point to page#2 
     // at this point you can't show bootbox or modify the page! 
     // - the browser will simply refresh the page to a new url and your changes will not be shown 
    }); 
} 

Страница № 2:

$(function(){ 
    // show bootbox ... 
}) 

Есть и другие варианты достижения того, что вы хотите - с помощью IFRAME, чтобы загрузить страницу в фрейм или (намного лучше) загружать html с помощью ajax и показывать его.

+0

мой javascript находится в файле include, который содержит тот же самый нижний колонтитул для всех страниц –

+0

, это нормально, но активируйте его, когда загружается новая страница, а не когда ссылка на старой странице. Обновленный мой ответ, чтобы подчеркнуть этот момент. – Iftah

+0

вы можете привести пример –

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