2016-06-28 4 views
0

У меня есть всплывающее окно ajax (вставляемое ниже), которое работает, но я не знаю, как его закрыть. Я попытался добавить .dialog ('close') к строке успеха, подобной этой, - $ ('# dialog-ajax'). Html (data) .dialog ('close');Закрытие всплывающего окна ajax не работает

Это не сработало. Я также попытался заменить эту линию следующим образом:

if (data.success) { 
    App.success(data.success); 
    $('#dialog-ajax').dialog('close'); 
} 

Опять же, не нужно идти. Спасибо за вашу помощь.

Вот HTML код:

<?php if ($this->details['changeLink'] && !$this->header_part) { ?> 
    <label class="shipping">{{Tracking number}}:</label> 
    <input id="tracking" class="fleft small" type="text" value="<?php echo $this->details['purchase']->tracking ?>" /> 
    <button id="change" class="small-button red-button fleft">{{Change}} </button> 
<?php } ?> 

Вот это JavaScript:

<script type="text/javascript"> 
$(document).ready(function() { 

    if ($.isFunction($.fn.selectbox)) { 
     $('select').selectbox(); 
    } 
    <?php if ($this->details['changeLink']) { ?> 

      $('#change').click(function() { 
       $.ajax({ 
        url: '<?php echo $this->details['changeLink'] ?>', 
        type: 'POST', 
        data: { 
         id: <?php echo $this->details['purchase']->id ?>, 
         status: $('#shipping-status').val(), 
         tracking: $('#tracking').val(), 
         company: $('#company').val() 
        }, 
        beforeSend: function() { 
         loading.loadFancy($('#dialog-ajax')); 
        }, 
        success: function(data) { 
         $('#dialog-ajax').html(data); 
        } 
       }); 
       return false; 
      }); 

     <?php if ($this->successfu_edite) { ?> 
         App.success('{{Purchase is successfully changed!}}'); 
     <?php } ?> 
    <?php } ?> 

}); 
</script> 
+0

При использовании диалогового окна JQuery («# диалоговых-Аякс») диалог («близко») должен работать. Пожалуйста, проверьте консоль браузера на наличие ошибок и разделите весь фрагмент кода html и js. –

+0

@HectorBarbossa Вот фрагмент html и js. Спасибо за ваши идеи. – ian

+0

@ian вы пробовали, что я предлагаю чуть ниже! – PacMan

ответ

0

хорошо я не уверен, если он может работать или нет, но логически она должна попробовать этот

if (data.success) { 
/*when the user click outside the pop up*/ 
$("#dialog-ajax").dialog('destroy').remove(); 

} 
+0

вот документация для диалогового API https://api.jqueryui.com/dialog/ – PacMan

0

Ваш вызов ajax имеет семантические ошибки. Добавьте атрибут DATATYPE и атрибут метода изменения и ваш звонок $ .ajax на следующее:.

<script type="text/javascript"> 
$(document).ready(function() { 

    if ($.isFunction($.fn.selectbox)) { 
     $('select').selectbox(); 
    } 
    <?php if ($this->details['changeLink']) { ?> 

      $('#change').click(function() { 
       $.ajax({ 
        url: '<?php echo $this->details['changeLink'] ?>', 
        //change method and dataType to reflect the following 
        method: 'POST', 
        dataType: 'json', 
        data: { 
         id: <?php echo $this->details['purchase']->id ?>, 
         status: $('#shipping-status').val(), 
         tracking: $('#tracking').val(), 
         company: $('#company').val() 
        }, 
        beforeSend: function() { 
         loading.loadFancy($('#dialog-ajax')); 
        }, 
        success: function(data) { 
         if (data.success) { 
          $("#dialog-ajax").fadeOut(900,'swing',function(){ 
           $(this).css("display","none"); 
          }); 
         } 
        } 
       }); 
       return false; 
      }); 

     <?php if ($this->successfu_edite) { ?> 
         App.success('{{Purchase is successfully changed!}}'); 
     <?php } ?> 
    <?php } ?> 

}); 
</script> 
Смежные вопросы