2016-08-13 112 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

结果似乎是一样的。 –