2016-06-28 17 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ダイアログ( '#dialog-ajax')ダイアログ( '閉じる')を使用している場合は有効です。ブラウザのコンソールでエラーを確認し、htmlとjsのコードスニペット全体を共有してください。 –

+0

@HectorBarbossaここにhtmlとjsのスニペットがあります。あなたのアイデアをありがとう。 – ian

+0

あなたは私がちょうど下に示唆したものを試しましたか? – 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呼び出しには意味エラーがあります。データ型属性とメソッド属性を変更して、$ .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> 
関連する問題