2016-08-13 130 views
0

我有一個顯示廣告系列的頁面。我不會顯示所有的代碼,但基本結構是像這樣搜索結果中斷刪除操作

@foreach ($campaigns as $campaign) 
    {!! Form::open(array('class' => 'form-inline delete', 'method' => 'DELETE', 'route' => array('campaigns.destroy', $campaign->id))) !!} 
     <div class="panel panel-default"> 
      @if (!empty($campaign->campaignName)) 
       <div class="panel-heading campaignPanelHeading"> 
        <h4>{{ $campaign->campaignName }}</h4> 
       </div> 
       <div class="panel-footer"> 
        <a href="{{ route('campaigns.destroy', $campaign->id) }}" class="btn btn-danger" id="deleteCampaign" data-method="delete" data-token="{{ csrf_token() }}"> 
         Delete 
        </a> 
       </div> 
      @endif 
     </div> 
    {!! Form::close() !!} 
@endforeach 

如果我嘗試刪除某個項目時,將觸發以下。

$("#deleteCampaign").on("submit", function(){ 
    return confirm("Do you want to delete this item?"); 
}); 

現在在此頁面上顯示所有廣告系列我有一個搜索框。您開始輸入並顯示自動完成列表。當你選擇一個選項,這是觸發

select: function (event, ui) { 
    $.ajax({ 
     url: "/returnDataForCampaigns", 
     type: "GET", 
     datatype: "html", 
     data: { 
      value : ui.item.value 
     }, 
     success: function(data) { 
      $('.container').html(data.html); 
      $('.selectpicker').select2(); 
     } 
    }); 
}, 

這基本上調用一個函數獲取選定活動,並將其注入到下面的部分

@if(!empty($campaign)) 
    {!! Form::open(array('class' => 'form-inline delete', 'method' => 'DELETE', 'route' => array('campaigns.destroy', $campaign->id))) !!} 
    <div class="panel panel-default"> 
     @if (!empty($campaign->campaignName)) 
      <div class="panel-heading campaignPanelHeading"> 
       <h4>{{ $campaign->campaignName }}</h4> 
      </div> 
      <div class="panel-footer"> 
       <a href="{{ route('campaigns.destroy', $campaign->id) }}" class="btn btn-danger" id="deleteCampaign" data-method="delete" data-token="{{ csrf_token() }}"> 
        <span class="glyphicon" aria-hidden="true"></span> 
        Delete 
       </a> 
      </div> 
     @endif 
    </div> 
    {!! Form::close() !!} 
@endif 

最後,這個數據然後注入頁面的容器。現在這一切正常。當它被注入後,檢查源代碼時,一切看起來都正確。

我有兩個其他按鈕,我刪除了上面顯示或編輯的活動,這些工作正常。不起作用的是搜索到的廣告系列的刪除按鈕。出於某種原因,當我點擊它時,它會轉到廣告系列展示頁面。此按鈕適用於顯示所有廣告系列時,僅當執行搜索時無效。

我檢查了刪除按鈕的代碼,以顯示所有廣告系列與搜索到的廣告系列的顯示時間。一切都是除了那些已經被應用到了刪除按鈕的JavaScript一樣,當所有活動顯示,以及一些隱藏的輸入

<a data-token="dsfsd" data-method="delete" id="deleteCampaign" class="btn btn-danger" onclick=" if ($(this).hasClass('action_confirm')) { if(confirm($(this).data('message') || &quot;Are you sure you want to do this?&quot;)) { $(this).find(&quot;form&quot;).submit(); } } else { $(this).find(&quot;form&quot;).submit(); }"> 
    Delete         
<form style="display:none" method="POST" action="http://localhost:8000/campaigns/43"> 
    <input type="hidden" value="delete" name="_method"> 
    <input type="hidden" value="dsfsd" name="_token"> 
</form> 
</a> 

這是一個搜索按鈕

<a data-token="dsfsd" data-method="delete" id="deleteCampaign" class="btn btn-danger" href="http://localhost:8000/campaigns/9"> 
    Delete 
</a> 

所以我的主要問題這是爲什麼這可能發生?我還想嘗試找出搜索版本的刪除按鈕爲什麼也會將您帶到顯示頁面?

任何意見讚賞

感謝

回答

1

試試這個你刪除jQuery代碼:

$(document).on("submit", "#deleteCampaign", function(e){ 
    e.preventDefault(); 
    return confirm("Do you want to delete this item?"); 
}); 

它,因爲你要添加DOM加載後的內容。

+0

結果似乎是一樣的。 –