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

にそれを注入しますページのコンテナ。今これはすべて正常に動作します。注入された後にソースをチェックすると、すべてが正しいように見えます。

上記の2つのボタンを削除してキャンペーンを表示または編集しても問題ありません。機能していないのは、検索したキャンペーンの削除ボタンです。何らかの理由でこれをクリックすると、キャンペーンの表示ページに移動します。このボタンは、すべてのキャンペーンを表示するときに機能します。検索が実行されるときにのみ機能します。

すべてのキャンペーンが検索されたキャンペーンと表示された場合の削除ボタンのコードを確認しました。すべては、すべてのキャンペーンを示すだけでなく、いくつかの隠し入力

<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> 

だから私のメインの質問です削除ボタンに適用されている以外のJavascriptから同じですなぜこれが起こっているのでしょうか?検索したバージョンの削除ボタンでも表示ページに移動する理由を調べてみたいと思いますか?

何かアドバイスは、あなたの削除jqueryのコードのためにこれを試してみてください

おかげ

答えて

1

を感謝:

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

そのを使用すると、DOMのロード後にコンテンツを追加しているため。

+0

結果は同じようです。 –

関連する問題